如果我想在一个Java EE 6 EJB模块中部署两个具有相同serviceName(但不同的targetNamespace)的webservices,我就会遇到问题。
这是我的设置:
my-webservice-ejb.jar
src / main / java /
- de.xx. MyService1 .java
@Stateless(name =“ MyServiceEJB1 ”)
@WebService(targetNamespace =“http:// de.xx ”,serviceName =“ MyService ”,portName =“MyServicePort”,wsdlLocation =“META-INF / wsdl / MyService1.wsdl “))
- de.xx。 MyService2 .java
@Stateless(name =“ MyServiceEJB2 ”)
@WebService(targetNamespace =“http:// de.xx.v2 ”,serviceName =“ MyService ”,portName =“MyServicePort”,wsdlLocation =“META-INF / wsdl / MyService2.wsdl “)
src / main / resources / META-INF / wsdl /
- MyService1.wsdl (使用targetNamespace http://de.xx 定义 MyService )
- MyService2.wsdl (使用targetNamespace http://de.xx.v2 定义 MyService )
Glassfish通过部署在此错误中运行:
无法初始化端点:错误是:
javax.xml.ws.WebServiceException:WSDL文件/ my-webservice-ejb.jar / META-INF / wsdl / MyService1.wsdl
有以下服务[{http://de.xx} MyService]但不是{http://de.xx.v2} MyService。
也许你忘了在@WebService / @WebServiceProvider中指定serviceName和/或targetNamespace?
如果我在不同的ejb.jar(my-webservice1-ejb.jar& my-webservice2-ejb.jar)中拆分服务EJB(相同的代码和注释),那么部署运行没有任何问题。