SOAP地址为EJB选择了错误的Web服务作为WebService

时间:2014-08-20 10:44:32

标签: web-services java-ee soap jboss wildfly

我正在WildFly 8.1.0 Final中部署JAVA EE应用程序。部署之后,它将SOAP地址位置中的地址替换为远程接口,而不是无状态EJB WebService。

E.g,

@Remote

public interface SbbAccess {

...

}



@WebService(name="SbbAccess", serviceName="pfmjainslee11_diagram", targetNamespace="http://jee.v1.sbb.profile" )

@Addressing

@HandlerChain(file = "jaxws-handlers.xml")

@TransactionManagement(TransactionManagementType.BEAN)



public @Stateless class SbbAccessBean implements SbbAccess {

...

}

来自wildlfy的WSDL是

 <wsdl:port binding="tns:pfmjainslee11_diagramSoapBinding" name="SbbAccessPort">

      <soap:address location="http://linus:8080/sbb---v1.EJB/pfmjainslee11_diagram/SbbAccess"/>

  </wsdl:port>

这应该就像

 <wsdl:port binding="tns:pfmjainslee11_diagramSoapBinding" name="SbbAccessPort">

      <soap:address location="http://linus:8080/sbb---v1.EJB/pfmjainslee11_diagram/SbbAccessBean"/>

  </wsdl:port>

有什么建议会导致这种行为吗?

此致

1 个答案:

答案 0 :(得分:0)

由于以下至少两项原因,这是预期的行为:

  1. 您的SLSB实施了@Remote接口
  2. 当SLSB实现业务接口时,规范建议接口名称在JNDI查找命名中是必需的。
  3. 正在远程访问SLSB
  4. 命名查找选项包括:

     [/application name]/module name/enterprise bean name[/interface name]
    

    理论上,你不需要实现@Remote,所以如果它引起你的任何不适,你可以删除界面实现,你会没事的