当前位置: 首页 > 知识库问答 >
问题:

在Apache Tomcat中部署JAX-WS webservice作为战争

岳锦
2023-03-14

我已经使用JAXWS开发了一个Web服务,并且能够在Tomcat7上从eclipse运行它,没有任何问题。

但我的问题是如何在Apache war文件中部署它。每当我在服务器上运行时,它都会出现异常严重:WSSERVLET11:无法解析运行时描述符:java。lang.NoClassDefFoundError:org/glassfish/ha/store/api/BackingStoreException

如果我登录Apache并尝试从那里运行,我可以看到这个FAIL-应用程序在上下文路径 /IPWSv2无法启动

这是我的太阳。xml:

 <?xml version="1.0" encoding="UTF-8"?>
   <endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"
version="2.0">
    <endpoint name="IPWSServiceV1" implementation="com.ipws.insurpay.ipwsv1.IPWSServiceV1"
    url-pattern="/IPWSServiceV1" />
</endpoints>

我的网站上有这个映射。xml

 <servlet-mapping>
    <servlet-name>IPWSServiceV1</servlet-name>
    <url-pattern>/IPWSServiceV1</url-pattern>
</servlet-mapping>

如果我用enpoint发布者运行它,它就会工作,

public static void main(String[] args) {
     Endpoint.publish("http://host/Project-Name/IPWSServiceV1",
             new IPWSServiceV1());

}

以下是堆栈跟踪:

   Jun 4, 2013 11:18:02 AM org.apache.catalina.core.StandardContext startInternal
 SEVERE: Context [/IPWSv2] startup failed due to previous errors
 Jun 4, 2013 11:18:07 AM org.apache.catalina.startup.HostConfig deployDirectory
 INFO: Deploying web application directory C:\Program Files\Apache Software       Foundation\Tomcat 7.0\webapps\docs
 Jun 4, 2013 11:18:07 AM org.apache.catalina.startup.HostConfig deployDirectory
 INFO: Deploying web application directory C:\Program Files\Apache Software   Foundation\Tomcat 7.0\webapps\manager
 Jun 4, 2013 11:18:08 AM org.apache.catalina.startup.HostConfig deployDirectory
 INFO: Deploying web application directory C:\Program Files\Apache Software   Foundation\Tomcat 7.0\webapps\ROOT
Jun 4, 2013 11:18:08 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-bio-8080"]
Jun 4, 2013 11:18:08 AM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Jun 4, 2013 11:18:08 AM org.apache.catalina.startup.Catalina start
 INFO: Server startup in 7668 ms
 Jun 4, 2013 11:22:54 AM org.apache.catalina.core.ApplicationContext log
 INFO: HTMLManager: init: Associated with Deployer    'Catalina:type=Deployer,host=localhost'
 Jun 4, 2013 11:22:54 AM org.apache.catalina.core.ApplicationContext log
 INFO: HTMLManager: init: Global resources are available
 Jun 4, 2013 11:22:54 AM org.apache.catalina.core.ApplicationContext log
 INFO: HTMLManager: list: Listing contexts for virtual host 'localhost'
 Jun 4, 2013 11:22:56 AM org.apache.catalina.core.ApplicationContext log
 INFO: HTMLManager: start: Starting web application '/IPWSv2'
 Jun 4, 2013 11:22:57 AM com.sun.xml.ws.transport.http.servlet.WSServletContextListener    parseAdaptersAndCreateDelegate
SEVERE: WSSERVLET11: failed to parse runtime descriptor:     java.lang.NoClassDefFoundError: org/glassfish/ha/store/api/BackingStoreException
 java.lang.NoClassDefFoundError: org/glassfish/ha/store/api/BackingStoreException
at com.sun.xml.ws.transport.http.servlet.ServletAdapter.<init>  (ServletAdapter.java:95)
at     com.sun.xml.ws.transport.http.servlet.ServletAdapterList.createHttpAdapter(ServletAdapterList.java:77)
at com.sun.xml.ws.transport.http.servlet.ServletAdapterList.createHttpAdapter(ServletAdapterList.java:53)
at com.sun.xml.ws.transport.http.HttpAdapterList.createAdapter(HttpAdapterList.java:77)
at com.sun.xml.ws.transport.http.HttpAdapterList.createAdapter(HttpAdapterList.java:71)
at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parseAdapters(DeploymentDescriptorParser.java:266)
at com.sun.xml.ws.transport.http.DeploymentDescriptorParser.parse(DeploymentDescriptorParser.java:152)
at com.sun.xml.ws.transport.http.servlet.WSServletContextListener.parseAdaptersAndCreateDelegate(WSServletContextListener.java:131)
at com.sun.xml.ws.transport.http.servlet.WSServletContainerInitializer.onStartup(WSServletContainerInitializer.java:65)
at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5274)
at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
at org.apache.catalina.manager.ManagerServlet.start(ManagerServlet.java:1256)
at org.apache.catalina.manager.HTMLManagerServlet.start(HTMLManagerServlet.java:714)
at org.apache.catalina.manager.HTMLManagerServlet.doPost(HTMLManagerServlet.java:219)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.filters.CsrfPreventionFilter.doFilter(CsrfPreventionFilter.java:193)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.filters.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:108)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:581)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)


Caused by: java.lang.ClassNotFoundException:    org.glassfish.ha.store.api.BackingStoreException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 38 more
Jun 4, 2013 11:22:57 AM org.apache.catalina.core.StandardContext startInternal
  SEVERE: Context [/IPWSv2] startup failed due to previous errors
Jun 4, 2013 11:22:57 AM org.apache.catalina.core.ApplicationContext log
INFO: HTMLManager: list: Listing contexts for virtual host 'localhost'

我在谷歌上搜索了这个,但找不到如何部署它。

有人能建议我解决这个问题吗?

提前谢谢

共有2个答案

邢项禹
2023-03-14

>

  • 去吧http://jax-ws.java.net/.
  • 下载JAX-WSRI发行版
  • 解压它并将以下JAX-WS依赖项复制到Tomcat库文件夹“{$Tomcat}/lib”:

    jaxb impl。jar,jaxws api。JARJAXWS-rt.jar,仅限gmbal api。jar,管理api。jar,stax-ex.jar,streambuffer。jar,政策。罐子

    干杯!

  • 滕鸿畴
    2023-03-14

    我通过复制文件haapi解决了这个问题。JAX-WS依赖项的jar,并将其粘贴到$CATALINA_HOME\lib

     类似资料:
    • 我正在使用Apache Tomcat v6服务器。在创建新的网络服务时,我获得了“Apache Axis”、“Apache Axis2”和“Apache CXF2. x”的网络服务运行时选项。 是否可以将运行时设置为“JAX-RPC”或“JAX WS”? 编辑: 我正在使用Eclipse IDE

    • 首先,我研究了建议的类似问题——因为这显然是一个相当普遍的问题——但还没有找到答案。我哪里出错了?下载了最新的JAXWS-RI,手动复制了所有的. jar文件。然后拼凑了一个web.xml 还有sun-jaxws.xml 还有几个java文件 我将这四个文件放在适当的目录结构中,在eclipse中构建了一个war文件,并将其复制到Tomcat webapps文件夹中。战争爆发并显示在管理器控制台上

    • 我用命令运行了一个spring boot web应用程序。但是,当将打包字段更改为war(在pom.xml中)并将其构建为war时,它未能在tomcat 7中运行。 我把我pom.xml的父母变成: 而且: 我的错误是: 我的问题是: 这里发生了什么,如何克服? 使用Spring-start真的安全吗?因为嵌入式服务器库似乎影响了它部署到j2ee容器中的可靠性。我知道,它仍然是Milestone版

    • 我正在开发简单的JAX-WS WebService。我正在使用ANT构建脚本创建WAR文件。该文件在部署到Tomcat7服务器时,抛出以下异常,并出现如下部署错误。 JAXB 2.1 API是从bootstrap classloader加载的,但是这个RI(从jar:file:/d:/dreamsoln/server/apache-tomcat-7.0.29/webapps/webserviced

    • 我阅读了一些教程,了解到负责管理spring应用程序中创建的所有bean。在将WAR部署到servlet容器时,必须扩展,从文档中可以看出,一个固执己见的WebApplicationInitializer可以从传统的WAR部署中运行SpringApplication。将Servlet、Filter和ServletContextInitializer bean从应用程序上下文绑定到服务器。 有人能帮

    • 问题内容: 我在JBoss 4.0.2中部署了一个servlet作为战争。我有一个已部署应用程序的属性文件。我应该把这个文件放在哪里?在jboss server \ default \ conf文件夹中的conf目录下?如何以可移植的方式加载该属性文件? 问题答案: 要加载在该属性文件 可移植 的方式,最好的办法是把它放在Web应用程序(的类路径或者以JAR下或下或在应用服务器类路径中,如果你想能