我想讓我的java rest api工作。 我正在關注swagger documentation。但是,我無法大舉工作。Swagger和web.xml
例如,根據文檔,我應該從swagger獲取json文件 - 但無論我嘗試什麼網址,我都不會得到它。
<context-param>
<param-name>resteasy.providers</param-name>
<param-value>
io.swagger.jaxrs.listing.ApiListingResource,
io.swagger.jaxrs.listing.SwaggerSerializers,
com.my.service.rest.handler.JsonParseExceptionHandler,
com.my.service.rest.handler.IllegalArgumentExceptionHandler,
com.my.service.rest.handler.JsonMappingExceptionHandler,
com.my.service.rest.handler.RuntimeExceptionHandler
</param-value>
</context-param>
<servlet>
<servlet-name>resteasy-servlet</servlet-name>
<servlet-class>io.swagger.jaxrs.config.DefaultJaxrsConfig</servlet-class>
<init-param>
<param-name>api.version</param-name>
<param-value>0.1</param-value>
</init-param>
<init-param>
<param-name>swagger.api.basepath</param-name>
<param-value>http://localhost:8080/indicatorsService</param-value>
<!-- also not working <param-value>http://localhost:8080/docs</param-value> -->
</init-param>
</servlet>
<servlet>
<servlet-name>JbossServlet</servlet-name>
<servlet-class>org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>JbossServlet</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
基於招搖文檔上,如果我去http://localhost:8080/indicatorsService/swagger.json,我應該得到的招搖JSON - 而不是我碰到下面的錯誤
Error in handling REST request. ExpectionMessage: Could not find resource for relative : /swagger.json of full path: http://localhost:8080/indicatorsService/swagger.json: org.jboss.resteasy.spi.NotFoundException: Could not find resource for relative : /swagger.json of full path: http://localhost:8080/indicatorsService/swagger.json
at org.jboss.resteasy.core.registry.RootSegment.matchChildren(RootSegment.java:360) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.core.registry.RootSegment.matchRoot(RootSegment.java:374) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.core.registry.RootSegment.matchRoot(RootSegment.java:367) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.core.ResourceMethodRegistry.getResourceInvoker(ResourceMethodRegistry.java:307) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.core.SynchronousDispatcher.getInvoker(SynchronousDispatcher.java:173) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:118) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:208) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:55) [resteasy-jaxrs-2.3.2.Final.jar:]
at org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher.service(HttpServletDispatcher.java:50) [resteasy-jaxrs-2.3.2.Final.jar:]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:329) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:]
at org.jboss.weld.servlet.ConversationPropagationFilter.doFilter(ConversationPropagationFilter.java:62) [weld-core-1.1.5.AS71.Final.jar:2012-02-10 15:31]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:280) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:248) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:275) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:161) [jbossweb-7.0.13.Final.jar:]
at org.jboss.as.jpa.interceptor.WebNonTxEmCloserValve.invoke(WebNonTxEmCloserValve.java:50) [jboss-as-jpa-7.1.1.Final.jar:7.1.1.Final]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:153) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:155) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:368) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877) [jbossweb-7.0.13.Final.jar:]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:671) [jbossweb-7.0.13.Final.jar:]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:930) [jbossweb-7.0.13.Final.jar:]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_85]
謝謝。
你好,請問你沒有錯誤服務器啓動?你是否看到它正在登錄中註冊端點? 您是否基於swagger-codegen工具生成了Java服務器?如果是這樣,你可以分享你運行該代碼的Swagger文件嗎? 如果沒有,也許你可以運行codegen工具並比較差異? 對我來說,它看起來像你的http:// localhost:8080/indicatorsService/swagger.json路徑可能不正確 - 也許它應該是http:// localhost:8080/indicatorsService/api/swagger.json –
嗨,沒有部署時出現錯誤。該服務工作正常。我沒有從swagger生成java服務器。我只是想爲現有的服務生成誇張的文檔。我嘗試了你建議的網址和其他許多網站 - 沒有成功。謝謝 – Magick
@Integrating Stuff - 感謝您關於審查生成的招搖的服務的建議。我一直在這樣做,但看不到任何明顯的錯誤。如果有一些錯誤可以幫助指出方向,那就太好了,但沒有。我不知道這是RestEasy還是Jboss或其他問題。我嘗試過所有的邏輯網址。現在我只是猜測。 – Magick