Soap 使用glassfish n wso2esb找不到操作的端点引用(EPR)

Soap 使用glassfish n wso2esb找不到操作的端点引用(EPR),soap,wsdl,wso2,wso2esb,esb,Soap,Wsdl,Wso2,Wso2esb,Esb,我是wso2 esb的新手。 我正在尝试一个简单的web服务程序 package testmart; import javax.jws.WebService; @WebService public class testone { public String testMethod() { return "success"; } } 我正在使用glassfish服务器,通过提供以下详细信息在wso2 esb上创建了一个代理: web服务url:http

我是wso2 esb的新手。 我正在尝试一个简单的web服务程序

package testmart;

import javax.jws.WebService;

@WebService 
public class testone {

   public String testMethod()
    {
        return "success";
    }
}
我正在使用glassfish服务器,通过提供以下详细信息在wso2 esb上创建了一个代理:

web服务url:
http://localhost:8080/testmart/testoneService

wsdl url:
http://localhost:8080/testmart/testoneService?wsdl

创建后显示“成功”消息。但当我测试它时,出现了以下错误:

<soapenv:Fault xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope" xmlns:axis2ns7="http://www.w3.org/2003/05/soap-envelope">

   <soapenv:Code>
     <soapenv:Value>axis2ns7:Client</soapenv:Value>

   </soapenv:Code>
   <soapenv:Reason>
      <soapenv:Text xml:lang="en-US" xmlns:xml="http://www.w3.org/XML/1998/namespace">
 The endpoint reference (EPR) for the Operation not found is         /services/testmart1.testmart1HttpSoap12Endpoint and the WSA Action = null. If this EPR was previously reachable, please contact the server administrator.
 </soapenv:Text>
   </soapenv:Reason>
   <soapenv:Detail/>
  </soapenv:Fault>

axis2ns7:客户端
找不到操作的端点引用(EPR)为/services/testmart1.testmart1HttpSoap12Endpoint,且WSA Action=null。如果以前可以访问此EPR,请与服务器管理员联系。
下面是我的esb源代码视图:

<?xml version="1.0" encoding="UTF-8"?>

 <definitions xmlns="http://ws.apache.org/ns/synapse">
   <registry provider="org.wso2.carbon.mediation.registry.WSO2Registry">
      <parameter name="cachableDuration">15000</parameter>
   </registry>
   <proxy name="testmart1"
        transports="https http local"
      startOnLoad="true"
      trace="disable">
  <description/>
  <target>
     <endpoint>
        <address uri="http://localhost:8080/testmart/testoneService"/>
     </endpoint>
     <outSequence>
        <send/>
     </outSequence>
  </target>
  <publishWSDL uri="http://localhost:8080/testmart/testoneService?wsdl"/>
   </proxy>
   <sequence name="fault">
     <log level="full">
     <property name="MESSAGE" value="Executing default 'fault' sequence"/>
     <property name="ERROR_CODE" expression="get-property('ERROR_CODE')"/>
     <property name="ERROR_MESSAGE" expression="get-property('ERROR_MESSAGE')"/>
  </log>
  <drop/>
   </sequence>
   <sequence name="main">
       <in>
        <log level="full"/>
        <filter source="get-property('To')" regex="http://localhost:9000.*">
           <send/>
        </filter>
      </in>
     <out>
        <send/>
     </out>
     <description>The main sequence for the message mediation</description>
   </sequence>
</definitions>

15000
消息中介的主序列
我读了所有关于这个错误的帖子,但无法解决这个问题。 任何形式的帮助都将被高度赞赏,因为这是我第一次尝试并坚持了几个小时的例子。
提前感谢。

发送请求时,请检查是否设置了SOAPAction。如果不是,可以通过两种方式指定:

  • ESB级
  • 在发送中介之前设置属性

    <property name="SOAPAction" value="urn:SOAPAction" scope="transport"/>
    

    您正在使用Wso2ESB,因此必须指定如下内容:

    @WebMethod(action=“testMethod”,operationName=“testMethod”) 公共字符串testMethod()


    上述注释必须在Web服务实现类中使用。

    在Websphere Application Server上,在相同的情况下,它有助于在服务器停止时删除临时文件夹。

    在WSO2 ESB的Web界面中,单击代理的“源代码视图”,并放置以下行:

      ...
       <parameter name="serviceType">proxy</parameter>
       <parameter name="disableOperationValidation">true</parameter>
      ...
    
    。。。
    代理
    真的
    ...
    
    标签前:

      ...
       <parameter name="serviceType">proxy</parameter>
       <parameter name="disableOperationValidation">true</parameter>
      ...