我正试图让Tomcat 7(随OpenEJB一起来)与泽西队1.9合作。我让我的泽西RestFUL服务使用Tomcat 6,但是一旦我将war文件部署到Tomcat 7(OpenEJB),我就会得到以下错误。
我在Eclipse中创建了一个新的动态web项目,并在没有添加任何额外代码的情况下将以下jars添加到WEB/lib文件夹中,但仍然得到了相同的错误。看来Tomcat 7的OpenEJB不喜欢泽西岛的罐子。
导致: org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:1685):无法实例化应用程序类: com.sun.jersey.api.core.ResourceConfig: null at,at org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:1482) at org.apache.openejb.config.AnnotationDeployer.deploy(AnnotationDeployer.java:293) at org.apache.openejb.config.ConfigurationFactory$Chain.deploy(ConfigurationFactory.java:263) at org.apache.openejb.config.ConfigurationFactory.configureApplication(ConfigurationFactory.java:693) at org.apache.tomee.catalina.TomcatWebAppBuilder.startInternal(TomcatWebAppBuilder.java:588) . 23
造成: sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:30) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at java.lang.Class.newInstance0(Class.java:355) at java.lang.Class.newInstance(Class.java:308) at org.apache.openejb.config.AnnotationDeployer$ProcessAnnotatedBeans.deploy(AnnotationDeployer.java:1682)
发布于 2012-06-05 22:52:33
看看Apache TomEE +,它是Tomcat与JAX已经集成的。您可以跳过搜索库的部分,尝试将它们集成起来,然后转到编写代码部分。
下面是一个关于如何在使用Tomcat web adpater的Eclipse和一个简单的动态网络项目中设置它的视频。
关于使用EJB作为RESTful服务的注意事项,有很多人会这样做,特别是当涉及到JPA时。除了免费获取事务之外,您还不需要JAX Application子类,也不需要映射任何REST servlet。一个小福利,但不错。
您还可以将同一个类公开为@Remote对象,并通过RMI调用它,作为JAX @WebService调用它,并通过HTTP/SOAP调用它,或者只对它进行注释@LocalBean,您可以在内部使用相同的对象而不需要HTTP开销。很高兴有这种灵活性。
发布于 2012-06-03 16:18:47
这个堆栈跟踪让我怀疑ResourceConfig是否有一个无参数的默认构造函数。如果OpenEJB部署需要并没有找到它,您就会看到这一点。
既然REST是用于web服务的HTTP,那么为什么要在OpenEJB中使用它呢?我猜这两者是相互排斥的。我会使用会话EJB或REST服务编写服务,但不是两者兼而有之。
https://stackoverflow.com/questions/10871884
复制相似问题