Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.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 具有相同上下文根的多个web服务_Java_Web Services_Weblogic_Weblogic12c_Contextroot - Fatal编程技术网

Java 具有相同上下文根的多个web服务

Java 具有相同上下文根的多个web服务,java,web-services,weblogic,weblogic12c,contextroot,Java,Web Services,Weblogic,Weblogic12c,Contextroot,我正在将使用WebLogic 8.1中安装的java EJB和wer的Web服务升级到WebLogic 12c中的JAX-RPC Web服务(WebLogic服务器版本:12.2.1.3.0) 它们是同一项目中具有相同上下文根的多个WS。因此,每个的地址如下所示: [server]:[port]/services/ws1 [server]:[port]/services/ws2 [server]:[port]/services/ws3 ... 在我的开发中,我不能为所有Web服务设置相同的上下

我正在将使用WebLogic 8.1中安装的java EJB和wer的Web服务升级到WebLogic 12c中的JAX-RPC Web服务(WebLogic服务器版本:12.2.1.3.0)

它们是同一项目中具有相同上下文根的多个WS。因此,每个的地址如下所示:

[server]:[port]/services/ws1
[server]:[port]/services/ws2
[server]:[port]/services/ws3
...
在我的开发中,我不能为所有Web服务设置相同的上下文根/路径“服务”

是否可以为所有这些文件都使用相同的上下文根?(就像上面的例子一样?)

详细说明: 我得到了一个包含多个Web服务的“WebLogicWeb服务项目”(Eclipse->new Project->Oracle->Weblogic->Web服务->Web服务项目)

Web服务是使用ANT wsdlc从每个WSDL生成的。所以我得到了一个“ws.jar”(编译的WSDL)和wsImpl.java(我把业务代码放在这里)

因此,“源文件”的最终列表如下所示:

ws1.jar
wsImpl1.java
ws2.jar
wsImpl2.java
ws3.jar
wsImpl3.java
...
然后,我尝试使用多个JW运行ANT jwsc,每个JW对应一个JW,为它们提供所有contextpath=“服务”。 当它到达第二个jws时,我得到错误“web应用程序my/package/ws2.war的上下文路径服务已被此应用程序使用。”


follow@EmmanuelCollin comment我能够进行更好的搜索,并使用

<module contextPath="services" name="myJar" >
   <jws .../>
   <jws .../>
</module>

例如: “示例4将多个Web服务打包到单个WAR文件中”

然后,我用ANT将生成的aplication.xml和.war文件打包到.ear中:

<ear destfile="${dist.dir}/${ant.project.name}.ear" appxml="${conf.dir}/application.xml">  
 <metainf dir="${build.dir}/META-INF"/> 
 <fileset dir="${dist.dir}" includes="*.jar,*.war"/>
</ear>

最后,将.ear部署到WebLogic12c服务器并成功测试了Web服务响应。都在同一个contextPath下


谢谢大家!

每个主机的上下文根必须是唯一的。您可以将所有服务合并到一个war文件中,或使用服务前面的http服务器向3个web应用程序发送请求。感谢@EmmanuelCollin的评论。我认为将所有服务合并到一个war文件中可能是我正在寻找的解决方案,但我不知道如何做到这一点,因为ANT jws运行时(如我的帖子中所述),它会为每个WS生成一个war文件。是否有ANT命令/标记将jws合并到同一war文件中?
<ear destfile="${dist.dir}/${ant.project.name}.ear" appxml="${conf.dir}/application.xml">  
 <metainf dir="${build.dir}/META-INF"/> 
 <fileset dir="${dist.dir}" includes="*.jar,*.war"/>
</ear>