zoukankan      html  css  js  c++  java
  • weblogic项目转为tomcat之后出现的问题

    解决java - JAX-WS和版本冲突

    itPublisher分享于2017-03-19

    推荐:JWS,JAX-WS,JAX-RS,REST,Restlet,SOAP(JAVA Web Services技术)

    JWS,JAX-WS,JAX-RS,REST,Restlet,SOAP l JWS:是指与webservice相关的J2EE(其实现在应该叫做Java EE吧)技术叫做JWS(全称就是java webservice)。没错,

    2018阿里云全部产品优惠券(新购或升级都可以使用,强烈推荐)
    领取地址https//promotion.aliyun.com/ntms/act/ambassador/sharetouser.html?userCode = hu9qh5ki&utm_source = hu9qh5ki

    作为测试项目,我使用wsdl和jax-ws创建了一个非常简单的WebService。如果客户端在GlassFish中部署为Web应用程序但是如果我直接在Eclipse中启动相同的(WebService-)代码,则会运行得很好,我收到以下错误:

    WARNUNG: Input Action on WSDL operation AddNumbers and @Action on its associated Web Method addNumbers did not match and will cause problems in dispatching the requests
    Exception in thread "main" java.lang.NoClassDefFoundError: org/glassfish/ha/store/api/BackingStoreException
        at com.sun.xml.ws.rx.mc.runtime.McConfigurationFactory.createInstance(McConfigurationFactory.java:66)
        at com.sun.xml.ws.rx.mc.runtime.McTubeFactory.createTube(McTubeFactory.java:68)
        at com.sun.xml.ws.assembler.TubeCreator.createTube(TubeCreator.java:84)
        at com.sun.xml.ws.assembler.TubelineAssemblerFactoryImpl$MetroTubelineAssembler.createClient(TubelineAssemblerFactoryImpl.java:130)
        at com.sun.xml.ws.client.Stub.createPipeline(Stub.java:228)
        at com.sun.xml.ws.client.Stub.<init>(Stub.java:205)
        at com.sun.xml.ws.client.Stub.<init>(Stub.java:178)
        at com.sun.xml.ws.client.sei.SEIStub.<init>(SEIStub.java:85)
        at com.sun.xml.ws.client.WSServiceDelegate.createEndpointIFBaseProxy(WSServiceDelegate.java:608)
        at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:348)
        at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:330)
        at com.sun.xml.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:312)
        at javax.xml.ws.Service.getPort(Service.java:134)
        at mnm.namedesdienstes.webservice.service.NameDesDienstesService.getNameDesDienstesPortTypePort(NameDesDienstesService.java:56)
        at webserviceClient.NameDesDienstesClient.myTest(NameDesDienstesClient.java:12)
        at webserviceClient.NameDesDienstesClient.main(NameDesDienstesClient.java:25)
    Caused by: java.lang.ClassNotFoundException: org.glassfish.ha.store.api.BackingStoreException
        at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
        ... 16 more
    

    经过一些研究后,我发现它必须与某些库文件的不同版本有关。所以现在我的问题是,如何“修复”我的eclipse java执行来正确运行我的webservice客户端?我找到了一些技巧,将一些jar复制到一个endorsed目录,但是哪个jar到哪个目录:-)

    我正在使用Max OS 10.6.8,Eclipse Project使用JVM 1.6。我的Mac Java版本是

    xmacbook:~ cstraube$ java -version
    java version "1.6.0_26"
    Java(TM) SE Runtime Environment (build 1.6.0_26-b03-384-10M3425)
    Java HotSpot(TM) 64-Bit Server VM (build 20.1-b02-384, mixed mode)
    

    更新:我的第一次尝试(感谢remipod的链接)我执行了以下步骤:

    1. 获取认可的lirbaries目录 System.out.println(System.getProperty("java.endorsed.dirs"));
    2. 接下来,我将两个文件JAXWS2.1.7-20090419.jar和JAXB2_20080513.jar(两个版本2.1.7)复制到此目录中
    3. 不幸的是,我仍然遇到同样的错误
    java eclipse web-services 
     | 
      这个问题
     编辑于2011年9月28日9:22询问2011年9月28日9:05 strauberry 2,800 3 23 45从这个文件创建你自己的BackupStoreException: svn-mirror.glassfish.org/glassfish-svn/trunk/api/ha -api / src / ...为我工作。-  Karl Geerts 2011年11月8日9:28

     | 

    答案
    4

    在tomcat 7中部署Web服务(JAX-WS)时,我遇到了类似的问题。可以在ha-api.jar中找到缺少的类定义。 

    org/glassfish/ha/store/api/BackingStoreException

    您应该将ha-api.jar(来自JAX-WS发行版)添加到服务器lib中。对于我的情况,eclipse运行tomcat 7,所以位置是(Tomcat 7.0 lib)。



      这个答案
    回答于2013年5月14日15:33 indrap 520 2 8 17

     |  解决方法

    您必须将jaxws-api.jar和jaxb-api.jar 拟合版本复制到目录/ Library / Java / Home / lib / endorsed(Mac)中。



      这个答案
     编辑 2012年5月8日22:32 扎克汤普森 9,900 30 48回答11年8月8日在7:39 strauberry2,800 3 23 45您可能需要添加ha-api.jar(记住版本),因为这为我修好了。-  Continuity82015年3月4日9:04


     | 

    看看这个链接JAX WS与WS 2.1.1您需要优先使用jre 1.6提供的jaxws版本的jaxws。

    编辑: Glassfish已经包含了一些库,以及java 6.我必须在glassfish 3.1 / 3.1.1和java 6/7中跟踪与jaxws的版本冲突。您可以检查eclipse用于启动应用程序的确切java运行时和在有效的类路径上查找重复的jar。

    认可机制只是提供了一种简单且容易出错的方式来覆盖包含的jaxws分发。容易出错,因为你的同事会遇到同样的问题。

    推荐:为什么我在eclipse中新建一个java web项目的时候多出了几个文件(Jax-Ws-Web Services等等)我原先的项

    如截图所示,可能是因为选择的视图为JAVAEE所以就会出现下面的情况视图切换java没有计算原项目面搞web服务只需要打开Java视图即可窗口菜单---> Open Per

    我没有在jaxws的上下文中看到异常org.glassfish.ha.store.api.BackingStoreException。您的版本冲突可能由另一个库创建,而不是jaxws ...



      这个答案
     编辑于2011年9月28日9:50回答2011年9月28日9:09 remipod 5,983 1 15 21谢谢你的回答!我已经更新了我的问题...... -  斯特劳贝里2011年 9月28日9:23


     | 

    我经历了完全相同的例外

    org.glassfish.ha.store.api.BackingStoreException

    在确保我的JAX-WS和JAX-B罐子都是相同版本后,问题仍然存在。

    修复:然后我添加ha-api.jar到WEB-INF lib目录,这解决了这个问题。

    这里的线索是异常类路径中的“ha”包,如上所示。希望这可以帮助!



      这个答案
    回答于2015年3月4日9:03 Continuity8 456 1 4 25


     | 

    推荐:在Tomcat上部署JAX-WS Web服务

    这是一个向导,向您展示如何在Tomcat servlet容器上部署JAX-WS Web服务。请参阅以下Web服务部署的摘要步骤。

    转自:http://www.itkeyword.com/doc/3025270947233508x404/jax-ws-and-version-conflicts
  • 相关阅读:
    win32-LPCSTR->String
    win32-UpdateLayeredWindow
    win32-CreateDIBSection的使用
    win32-StretchDIBits
    hdu1978 简单记忆化搜索
    hdu1978 简单记忆化搜索
    hdu4530 水题
    hdu4530 水题
    hdu3006 状态压缩+位运算+hash(小想法题)
    hdu3006 状态压缩+位运算+hash(小想法题)
  • 原文地址:https://www.cnblogs.com/dauber/p/9476012.html
Copyright © 2011-2022 走看看