【问题标题】:set contextpath for EJB3 webservice on Weblogic 11g在 Weblogic 11g 上为 EJB3 Web 服务设置上下文路径
【发布时间】:2013-12-16 21:58:53
【问题描述】:

我使用 ejb3 和 maven(EAR 文件)构建了一个 Web 服务,代码优先,JAXWS,没有 WSDL 和 没有 WAR,只有 ejb,使用 Eclipse,该服务在 JBOSS 中工作,但现在我需要将服务放入 Weblogic 11g

使用 JBOSS 我有注释

@WebContext(contextRoot="/wsManCa7", urlPattern="/manCA7WS")

但是在 Weblogic 上没有,我发现这个链接 http://erikwramner.wordpress.com/2012/03/26/ejb3-web-service-context-path-in-weblogic-11g/ 来创建 weblogic-webservices.xml 和 webservices.xml 我将文件放在 jar 的 META-INF 中(以及 EAR 中的 JAr),但是 Web 逻辑会抛出这个错误

 Servlet: "WSEE_SERVLET" failed to preload on startup in Web application: 
 "/ManCA7". com.sun.xml.ws.server.ServerRtException: Port namespace
 http://someserver.com/ManCA7 doesnt match Service namespace {1} at
 com.sun.xml.ws.server.EndpointFactory.createEndpoint(EndpointFactory.java:160) at
 com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:496) at
 com.sun.xml.ws.api.server.WSEndpoint.create(WSEndpoint.java:539) at
 weblogic.wsee.jaxws.JAXWSDeployedServlet.getEndpoint(JAXWSDeployedServlet.java:183) at
 weblogic.wsee.jaxws.JAXWSServlet.registerEndpoint(JAXWSServlet.java:138) at
 weblogic.wsee.jaxws.JAXWSServlet.init(JAXWSServlet.java:67) at ....

我知道问题是这个标签

<wsdl-port xmlns:ws="http://someserver.com/ManCA7">ws:ManCA7Port</wsdl-port>

但哪个是必需的 Service 命名空间???

我不知道标签里面放了什么:(

我的 webservices.xml 是

<?xml version="1.0" encoding="UTF-8"?>
  <webservices xmlns="http://java.sun.com/xml/ns/javaee"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2">
   <webservice-description>
      <webservice-description-name>ManCA7</webservice-description-name>
        <port-component>
            <port-component-name>ManCA7Port</port-component-name>
            <wsdl-port xmlns:ws="http://someserver.com/ManCA7">ws:ManCA7Port</wsdl-port>
            <service-endpoint-interface>my.company.manCA7.sei.ManCa7SEI</service-endpoint-interface>
               <service-impl-bean>
                    <ejb-link>ManCa7EndPoint</ejb-link>
              </service-impl-bean>
         </port-component>
       </webservice-description>
    </webservices>

而我的 weblogic-webservices.xml 是

  <?xml version = '1.0' encoding = 'UTF-8'?>
  <weblogic-webservices xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-webservices
   http://www.bea.com/ns/weblogic/weblogic-webservices/1.0/weblogic-webservices.xsd"
   xmlns="http://www.bea.com/ns/weblogic/weblogic-webservices">
   <webservice-description>
        <webservice-description-name>ManCA7</webservice-description-name>
        <webservice-type>JAXWS</webservice-type>
        <port-component>
          <port-component-name>ManCA7Port</port-component-name>
        <service-endpoint-address>
           <webservice-contextpath>/ManCA7</webservice-contextpath>
           <webservice-serviceuri>/Mant</webservice-serviceuri>
        </service-endpoint-address>
     <wsdl>
         <exposed>true</exposed>
     </wsdl>
     </port-component>
  </webservice-description>
 </weblogic-webservices>

我的 EJB 用这个公开服务

 @WebService(endpointInterface = "my.company.manCA7.sei.ManCa7SEI")
 @TransactionManagement(TransactionManagementType.CONTAINER)
 @Stateless
 public class ManCa7EndPoint implements ManCa7SEI{
 private final Logger logger = LoggerFactory.getLogger(ManCa7EndPoint.class);
     .
     .
     .

【问题讨论】:

    标签: web-services maven weblogic ejb-3.0 webcontext


    【解决方案1】:

    我找到了解决方案...

    在注释 webservice 中,我放置了 webservices.xml 的相同命名空间并工作了!!

    在 webservices.xml 中

    <wsdl-port xmlns:ws="http://someserver.com/ManCA7">ws:ManCA7Port</wsdl-port>
    

    EJB 内部

    @WebService(endpointInterface = "my.company.manCA7.sei.ManCa7SEI",targetNamespace = "http://someserver.com/ManCA7")
    @TransactionManagement(TransactionManagementType.CONTAINER)
    @Stateless
    public class ManCa7EndPoint implements ManCa7SEI{
    

    解决方案是 targetNamespace = "http://someserver.com/ManCA7"

    【讨论】:

      猜你喜欢
      • 2016-01-10
      • 2012-03-13
      • 1970-01-01
      • 2016-11-15
      • 2014-06-19
      • 1970-01-01
      • 2014-08-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多