2016-09-20 2 views
0

나는 (editor.swagger.io에서 내 보낸) 서서히 생성 된 서버로 apiDiscovery-1.0 기능을 실험하고 있습니다. 나는 server.xml 파일, 내 응용 프로그램의 바로 전쟁을 지정하지 않고 생성 된 전쟁을 누르면 pom.xml 파일이apiDiscovery-1.0 Liberty 기능은 1.5.4로 작동합니까?

<swagger-core-version>1.5.9</swagger-core-version> 

을 포함, 내가 HTTP를 얻을 수 있어요 : //.eu-gb. 내가 HTTP 가리키는 때 다음과 같은 예외가 발생하는 경우에

<feature>apiDiscovery-1.0</feature> 

포함 server.xml의와 전쟁을 밀어 경우

같은 mybluemix.net/v1/swagger.json 발생하지 않습니다 : //eu-gb.mybluemix.net/v1/swagger.json

내가 server.xml의 라인을

<feature>apiDiscovery-1.0</feature> 

를 다시 댓글을 달고 응용 프로그램을 누르면 10

2016-09-21T00:34:15.05+0200 [App/0]  ERR [ERROR ] SRVE0777E: Exception thrown by application class 'org.glassfish.jersey.servlet.WebComponent.serviceImpl:489' 
2016-09-21T00:34:15.05+0200 [App/0]  ERR javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: java.lang.NoSuchMethodError: io/swagger/annotations/ApiParam.examples()Lio/swagger/annotations/Example; (loaded from file:/home/vcap/app/.liberty/dev/api/third-party/com.ibm.websphere.appserver.thirdparty.swagger.annotations_1.0.14.jar by [email protected][com.ibm.websphere.appserver.thirdparty.swagger.annotations:1.0.14.cl160320160831-1555(id=113)]) called from class io.swagger.util.ParameterProcessor$ApiParamWrapper (loaded from file:/home/vcap/app/wlp/usr/servers/defaultServer/apps/servicemanager-jaxrs-server-1.0.0.war/WEB-INF/lib/swagger-core-1.5.9.jar by [email protected]). 
2016-09-21T00:34:15.05+0200 [App/0]  ERR at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:489) 
2016-09-21T00:34:15.05+0200 [App/0]  ERR at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) 
2016-09-21T00:34:15.05+0200 [App/0]  ERR at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) 
2016-09-21T00:34:15.05+0200 [App/0]  ERR at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) 
2016-09-21T00:34:15.05+0200 [App/0]  ERR at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) 
2016-09-21T00:34:15.05+0200 [App/0]  ERR at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1290) 
2016-09-21T00:34:15.05+0200 [App/0]  ERR at [internal classes] 
2016-09-21T00:34:15.05+0200 [App/0]  ERR at io.swagger.api.ApiOriginFilter.doFilter(ApiOriginFilter.java:16) 
2016-09-21T00:34:15.05+0200 [App/0]  ERR at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:207) 
2016-09-21T00:34:15.05+0200 [App/0]  ERR at [internal classes] 
2016-09-21T00:34:15.05+0200 [App/0]  ERR Caused by: org.glassfish.jersey.server.ContainerException: java.lang.NoSuchMethodError: io/swagger/annotations/ApiParam.examples()Lio/swagger/annotations/Example; (loaded from file:/home/vcap/app/.liberty/dev/api/third-party/com.ibm.websphere.appserver.thirdparty.swagger.annotations_1.0.14.jar by [email protected][com.ibm.websphere.appserver.thirdparty.swagger.annotations:1.0.14.cl160320160831-1555(id=113)]) called from class io.swagger.util.ParameterProcessor$ApiParamWrapper (loaded from file:/home/vcap/app/wlp/usr/servers/defaultServer/apps/servicemanager-jaxrs-server-1.0.0.war/WEB-INF/lib/swagger-core-1.5.9.jar by [email protected]). 
2016-09-21T00:34:15.05+0200 [App/0]  ERR at org.glassfish.jersey.servlet.internal.ResponseWriter.rethrow(ResponseWriter.java:278) 
2016-09-21T00:34:15.05+0200 [App/0]  ERR at org.glassfish.jersey.servlet.internal.ResponseWriter.failure(ResponseWriter.java:260) 
2016-09-21T00:34:15.05+0200 [App/0]  ERR at org.glassfish.jersey.server.ServerRuntime$Responder.process(ServerRuntime.java:509) 
2016-09-21T00:34:15.05+0200 [App/0]  ERR at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:334) 
2016-09-21T00:34:15.05+0200 [App/0]  ERR at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) 
2016-09-21T00:34:15.05+0200 [App/0]  ERR at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) 
2016-09-21T00:34:15.05+0200 [App/0]  ERR at org.glassfish.jersey.internal.Errors.process(Errors.java:315) 
2016-09-21T00:34:15.05+0200 [App/0]  ERR at org.glassfish.jersey.internal.Errors.process(Errors.java:297) 
2016-09-21T00:34:15.05+0200 [App/0]  ERR at org.glassfish.jersey.internal.Errors.process(Errors.java:267) 
2016-09-21T00:34:15.05+0200 [App/0]  ERR at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) 
2016-09-21T00:34:15.05+0200 [App/0]  ERR at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) 
2016-09-21T00:34:15.05+0200 [App/0]  ERR at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) 
2016-09-21T00:34:15.05+0200 [App/0]  ERR at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473) 
2016-09-21T00:34:15.05+0200 [App/0]  ERR ... 9 more 
2016-09-21T00:34:15.05+0200 [App/0]  ERR Caused by: java.lang.NoSuchMethodError: io/swagger/annotations/ApiParam.examples()Lio/swagger/annotations/Example; (loaded from file:/home/vcap/app/.liberty/dev/api/third-party/com.ibm.websphere.appserver.thirdparty.swagger.annotations_1.0.14.jar by [email protected][com.ibm.websphere.appserver.thirdparty.swagger.annotations:1.0.14.cl160320160831-1555(id=113)]) called from class io.swagger.util.ParameterProcessor$ApiParamWrapper (loaded from file:/home/vcap/app/wlp/usr/servers/defaultServer/apps/servicemanager-jaxrs-server-1.0.0.war/WEB-INF/lib/swagger-core-1.5.9.jar by [email protected]). 

는 작동, 나는 다시 swagger.json 파일을 얻을.

/ibm/api/explorer에는 swagger.json에 정의 된 API가 표시되지 않습니다. 나는 예외가 근본 원인이라고 생각한다. 1.5.9 : 빌드 버전과 다른

javax.servlet.ServletException: org.glassfish.jersey.server.ContainerException: java.lang.NoSuchMethodError: io/swagger/annotations/ApiParam.examples()Lio/swagger/annotations/Example; (loaded from file:/home/vcap/app/.liberty/dev/api/third-party/com.ibm.websphere.appserver.thirdparty.swagger.annotations_1.0.14.jar by 

: 내가 주목하는 것은 예외에보고 자신감의 버전입니다.

아이디어가 있으십니까? 감사.

답변

0

그렇습니다. 오늘 (09/20/2016) 현재, Liberty의 API 검색이 1.5.3을 사용하고있는 Swagger 주석 버전인데, 이는 ApiParam의 새로운 특성에 예외가 발생하는 이유입니다.

wlp/dev/api/third-party/com.ibm.websphere.appserver.thirdparty.swagger.annotations_1.0.14.jar에있는 Liberty Swagger 주석에 대해 응용 프로그램을 컴파일하는 경우 WLP zip을 다운로드 한 다음 wasdev.net을 실행하여 "wlp/bin installUtility install apiDiscovery-1.0") 또는 1.5.3 repo : https://mvnrepository.com/artifact/io.swagger/swagger-annotations/1.5.3에 대한 종속성을 지정하면 델타가 표시됩니다. 이들을 수정 한 후에는/ibm/api/explorer에서 행복하게 전개하고 볼 수 있어야합니다.

이 의견을 팀에 보내서 항아리를 업데이트하므로 앞으로 몇 베타 버전을 계속 조정 해주십시오.

+0

pom.xml을 1.5.3으로 변경하고 생성 된 부트 스트랩 클래스를 다시 이식했습니다. 더 이상 예외가 없으므로 json을 얻을 수 있습니다. 그러나 필자는 여전히/ibm/api/explorer에서 내 API를 보지 못합니다. 내가 보는 유일한 API는 apiDiscovery입니다. 그 밖의 무엇을 내가 그리워 했느냐? –

+0

편집기 세대의 "Jaxrs Spec"풍미를 사용할 수 있습니까 (저지 섬 대신)? 약 한 달 전에 기여했으며 API 프로세서와 종종 충돌하는 타사 종속성을 제거합니다. – ArthurDM