Bluemix 上的 Web 服务发生 SRVE0207E 错误

A SRVE0207E error occurs with a web service on Bluemix

这是我的 Web 服务在 bluemix 上的运行时日志。当我尝试调用 API 时,它 returns 出现以下错误:

"Error 500: javax.servlet.ServletException: SRVE0207E: Uncaught initialization exception created by servlet" on the page and this is the log shown.

该代码在其他 Web 服务上运行良好。但是当我尝试将它合并到这个 Web 服务中时,它不起作用。谁能告诉我哪里错了?

9/9/2015 12:52:56 AM    OUT App Launching defaultServer (WebSphere Application Server 2015.8.0.0/wlp-1.0.10.20150728-1158) on IBM J9 VM, version pxa6470_27sr3fp10-20150708_01 (SR3 FP10) (en_US)
9/9/2015 12:53:19 AM    ERR App at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:332)
9/8/2015 11:58:53 PM    OUT App [INFO    ] SRVE0250I: Web Module Hello Java has been bound to default_host.
9/9/2015 12:15:01 AM    OUT App [AUDIT   ] CWWKF0012I: The server installed the following features: [json-1.0, jpa-2.0, icap:managementConnector-1.0, beanValidation-1.0, jdbc-4.0, managedBeans-1.0, cloudAutowiring-1.0, jsf-2.0, jsp-2.2, servlet-3.0, jaxrs-1.1, jndi-1.0, appState-1.0, ejbLite-3.1, cdi-1.0].
9/9/2015 12:27:20 AM    OUT App [INFO    ] SRVE0250I: Web Module com.ibm.ws.cloudoe.management.client.liberty.connector has been bound to default_host.
9/9/2015 12:27:39 AM    ERR App at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170)
9/9/2015 12:27:39 AM    ERR App at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:401)
9/9/2015 12:28:05 AM    ERR App [ERROR   ] SRVE0271E: Uncaught init() exception created by servlet [javax.ws.rs.core.Application] in application [myapp]: java.lang.NoSuchMethodError: javax/ws/rs/core/Application.getProperties()Ljava/util/Map;
9/9/2015 12:28:12 AM    ERR App at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:332)
9/9/2015 12:33:53 AM    OUT App [AUDIT   ] CWWKZ0001I: Application myapp started in 1.548 seconds.
9/9/2015 12:34:30 AM    OUT App [INFO    ] SESN0176I: A new session context will be created for application key default_host/
9/9/2015 12:34:31 AM    ERR App at com.ibm.ws.webcontainer.servlet.ServletWrapper.init(ServletWrapper.java:332)
9/9/2015 12:34:36 AM    ERR App at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:390)
9/9/2015 12:34:36 AM    ERR App at org.glassfish.jersey.servlet.WebComponent.<init>(WebComponent.java:390)
9/9/2015 12:42:35 AM    OUT App [AUDIT   ] CWWKT0016I: Web application available (default_host): http://18usg1n4kmq:62380/IBMMGMTRest/
9/9/2015 12:42:51 AM    ERR App at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:170)
9/9/2015 12:42:51 AM    ERR App at org.glassfish.jersey.servlet.ServletContainer.init(ServletContainer.java:362)
9/9/2015 12:51:57 AM    OUT STG -----> Auto-configuration is creating config for service instance 'SRTDatabase' of type 'SQLDB'
9/9/2015 12:53:17 AM    ERR App at javax.servlet.GenericServlet.init(GenericServlet.java:161)
9/9/2015 12:53:17 AM    ERR App at javax.servlet.GenericServlet.init(GenericServlet.java:161)

错误原因是日志中看到的NoSuchMethodError:

[myapp]: java.lang.NoSuchMethodError: javax/ws/rs/core/Application.getProperties()Ljava/util/Map;

Liberty 服务器正在加载的 JAX-RS 1.1 中不存在此方法:

9/9/2015 12:15:01 AM OUT App [AUDIT ] CWWKF0012I: The server installed the following features: [json-1.0, jpa-2.0, icap:managementConnector-1.0, beanValidation-1.0, jdbc-4.0, managedBeans-1.0, cloudAutowiring-1.0, jsf-2.0, jsp-2.2, servlet-3.0, jaxrs-1.1, jndi-1.0, appState-1.0, ejbLite-3.1, cdi-1.0].

要解决此问题,您需要停止使用该方法或将打包的 Liberty 服务器配置推送到包含您的应用程序和 server.xml 的 Bluemix 以加载 jaxrs-2.0 功能而不是 jaxrs-1.1 特征。有关如何推送打包的自由服务器的详细信息,请参见 here