我正在尝试使用部署到OpenEJB中的无状态EJB bean来设置简单的概念证明Rest服务。 我正在使用openejb 4.6.0.2
Aug 04, 2015 4:14:15 PM org.apache.openejb.server.SimpleServiceManager start
INFO: Can't start service cxf-rs
java.lang.NullPointerException
at org.apache.openejb.server.rest.RESTService.deployApplication(RESTService.java:450)
at org.apache.openejb.server.rest.RESTService.afterApplicationCreated(RESTService.java:231)
at org.apache.openejb.server.rest.RESTService.afterApplicationCreated(RESTService.java:610)
at org.apache.openejb.server.rest.RESTService.start(RESTService.java:898)
at org.apache.openejb.server.SimpleServiceManager.start(SimpleServiceManager.java:171)
at org.apache.openejb.server.ServiceManager.start(ServiceManager.java:131)
at org.apache.openejb.server.Server.start(Server.java:95)
at org.apache.openejb.server.Main.initServer(Main.java:157)
at org.apache.openejb.server.Main.main(Main.java:128)
at sun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.openejb.cli.MainImpl.main(MainImpl.java:146)
at org.apache.openejb.cli.Bootstrap.main(Bootstrap.java:105)
此调用抛出空指针:
final RsRegistry.AddressInfo address = rsRegistry.createRsHttpListener(contextRoot, listener, classLoader, nopath.substring(NOPATH_PREFIX.length() - 1), virtualHost, auth, realm);
virtualHost,realm和auth都出现在openejb属性中。 contextRoot应该默认为war名称,有没有更好的地方专门设置它?
我不确定这里还有什么会抛出空指针而不会在容器中的其他地方引起更大的问题。 .war没有内部jar,只有rest bean和javax.ws.rs.core.Application的扩展。