Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 解决axis2和OC4J库冲突_Java_Shared Libraries_Axis2_Oc4j - Fatal编程技术网

Java 解决axis2和OC4J库冲突

Java 解决axis2和OC4J库冲突,java,shared-libraries,axis2,oc4j,Java,Shared Libraries,Axis2,Oc4j,我正在尝试将Axis2 web服务部署到OC4J 10.1.3应用服务器 我以前使用的是Axis1.4,刚刚创建了自己的共享库,其中包含了所有文件。1.4中有一个问题是用1.5修补的,所以我现在使用它,但它不包括所有的库。这次我将axis2.war部署到OC4J服务器,并使用axis2管理页面尝试部署我的web服务 如果我通过axis2部署web服务,那么我将得到一个java.lang.NoSuchMethodError:javax.jws.WebMethod.exclude()Z,但我找不到冲

我正在尝试将Axis2 web服务部署到OC4J 10.1.3应用服务器

我以前使用的是Axis1.4,刚刚创建了自己的共享库,其中包含了所有文件。1.4中有一个问题是用1.5修补的,所以我现在使用它,但它不包括所有的库。这次我将axis2.war部署到OC4J服务器,并使用axis2管理页面尝试部署我的web服务

如果我通过axis2部署web服务,那么我将得到一个
java.lang.NoSuchMethodError:javax.jws.WebMethod.exclude()Z
,但我找不到冲突的库。Axis2中有新的jax ws库,但我认为这是OC4J应用服务器上的一个问题。我排除了xml.jar(因为它有旧的jaxb1.0 libs),这在我的本地机器上解决了这个问题,但在linux机器上没有

我尝试先编辑部署计划以搜索本地文件夹,这允许我部署服务,但当我尝试访问它或WSDL时,我得到一个关于类强制转换异常和JXDocumentBuilderFactory的错误(目前我没有确切的错误)


我将linux机器上的共享库与本地机器上的共享库进行了比较,并在每个机器上使用了相同的库(不过,我没有验证每个jar的版本)。如果axis2部署到OC4J,而我将服务部署到axis2,那么我不会继承axis2库(jax ws等)吗

将以下内容添加到orion-application.xml中,尝试删除冲突中的继承库:

<orion-application>
  <imported-shared-libraries>
    <remove-inherited name="PUT_HERE_THE_NAME_OF_THE_LIBRARY"/>
  </imported-shared-libraries>
</orion-application>

详情如下:

编辑:
我搜索了共享库,发现没有,jws-api.jar是在启动时加载的,无法轻松删除:

更换OC4J JAX-WS库
OC4J已初步支持JAX-WS,不幸的是,这意味着在OC4J引导期间,它将加载过时的JAX-WS API并由Oracle实现。在OC4J启动的非常早期阶段,甚至在共享库开始运行之前就出现了这种情况。
启动时OC4J库在$ORACLE_HOME/j2ee/HOME/OC4J.jar bootstrap jar中的Boot.xml文件中配置。要摆脱这个问题:

1-将jar文件复制到${oracle.home}/webservices/lib/jaxws
2-解包OC4J.jar文件
3-Locate META-INF/boot.xml
4-用jar替换此行中的路径:

<code-source 
   path="${oracle.home}/webservices/lib/jws-api.jar" 
   if="java.specification.version == /1\.[5-6]/"
/>  

5-Repackage oc4j.jar(不要忘记MANIFEST.MF-use jar-m META-INF/MANIFEST.MF)


原始文章:

您是否有异常的完整堆栈跟踪?它可能有助于识别有罪的库。您使用的是哪个版本的OC4J?您提到了10.1.3,但您是指10.1.3.1或10.1.3.3等还是最近发布的10.1.3.5。对不起,我目前没有完整的stacktrace,但版本是10.1.3.1.0。我需要的是xmlparserv2.jar,它位于共享库中,但在尝试访问我的web服务时找不到它(可能与另一个库冲突?)。我首先选中该框以启用搜索web应用程序库,并在web应用程序库中包含xmlparserv2.jar,这已经解决了它;不过,我不知道这是否会导致另一个冲突。这是orion-web.xml中的内容:
,不幸的是,有几个其他服务已经在运行,可能依赖于旧库,因此我一直在尝试避免更改服务器上的任何内容。另外,我只能通过Oracle Enterprise Manager访问,不能访问实际的计算机本身。我正在慢慢地把东西拼凑起来,但这真的很痛苦。