java - 部分项目不在 Tomcat 6 上运行

标签 java web-services tomcat ejb

我有一个 Tomcat 6 服务器,我正在开发一个与 Java EE 5 兼容的 REST Web 服务。

该项目是在 NetBeans 6.9.1 上开发的。我成功部署了项目,程序运行并且在浏览器中收到了一个网页。现在程序的一部分工作了。也就是说,我可以从网站访问 Java bean,我检索数据并将其显示在网页上。

但是我无法访问网络服务。 Web 服务是使用 Java Enterprise Beans (EJB) 实现的。服务器上是否缺少任何用于 EJB 或 REST Web 服务的库?

这是我在页面上看到的错误: HTTP 状态 404。说明:请求的资源不可用。可能是什么问题?

这是我在 NetBeans 上得到的:

17-Mar-2011 18:01:14 org.apache.catalina.loader.WebappClassLoader loadClass
INFO: Illegal access: this web application instance has been stopped already. Could not load java.lang.Object. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
java.lang.IllegalStateException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1402)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
at com.sun.faces.application.ConverterPropertyEditorFactory$DisposableClassLoader.loadClass(ConverterPropertyEditorFactory.java:447)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2389)
at java.lang.Class.getConstructor0(Class.java:2699)
at java.lang.Class.newInstance0(Class.java:326)
at java.lang.Class.newInstance(Class.java:308)
at java.beans.PropertyEditorManager.findEditor(PropertyEditorManager.java:79)
at com.sun.faces.application.ApplicationImpl.addPropertyEditorIfNecessary(ApplicationImpl.java:690)
at com.sun.faces.application.ApplicationImpl.addConverter(ApplicationImpl.java:660)
at com.sun.faces.config.ConfigureListener.configure(ConfigureListener.java:727)
at com.sun.faces.config.ConfigureListener.configure(ConfigureListener.java:489)
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:381)
at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:3972)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4467)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:521)
at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1359)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:297)
at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:836)
at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:761)
at org.apache.catalina.manager.ManagerServlet.check(ManagerServlet.java:1500)
at org.apache.catalina.manager.ManagerServlet.deploy(ManagerServlet.java:849)
at org.apache.catalina.manager.ManagerServlet.doGet(ManagerServlet.java:351)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.netbeans.modules.web.monitor.server.MonitorFilter.doFilter(MonitorFilter.java:199)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:558)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
at java.lang.Thread.run(Thread.java:619)
17-Mar-2011 18:01:15 com.sun.jersey.api.core.WebAppResourceConfig init
INFO: Scanning for root resource and provider classes in the Web app resource paths:
/WEB-INF/lib
/WEB-INF/classes 

最佳答案

提供所提供的数据不能说明您的服务器上是否缺少库。只有您可以验证这一点。

从堆栈跟踪来看,似乎至少 jersey 存在于某处(可能在您的 .war 的 WEB-INF/lib 中,或者如果 .war 也在 Tomcat 的 lib 目录中的完整 Java EE AS 上运行)。

既然您声明现有代码使用 EJB,那么您还应该在某处有一个 EJB 实现。 Tomcat 并不是开箱即用的 EJB 支持,因为它只是一个 Servlet 容器。 OpenEJB 将是一个可能(并且很有可能)的实现。检查这样的实现是否存在于某处。

关于java - 部分项目不在 Tomcat 6 上运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5449576/

相关文章:

c# - 创建多个具有相同签名的 Web Api

web-services - 如何从具有限制和偏移量的不同表中获取和排序行?

android - 用于餐厅搜索的 Web 服务

Spring 4.0 与 Tomcat 6 : EL version conflict

java - 在Eclipse中,在依赖maven项目的动态web项目中,如何从maven项目中获取jar?

Java 和 JSP - 将 .class 放在首选目录中?

java - 安全存储重复 Web 服务调用的凭据

java - MPP架构上的多线程应用

java - 如何设置 Tomcat webapp 类路径

java - eclipse gradle spring mvc tomcat 构建