我是wso2 esb的新手。 我正在尝试一个简单的Web服务程序。
package testmart;
import javax.jws.WebService;
@WebService
public class testone {
public String testMethod()
{
return "success";
}
}
我正在使用glassfish服务器,通过提供以下详细信息在wso2 esb上创建了一个代理:
网络服务网址: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>
以下是我的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>
我阅读了有关此错误的所有帖子,但无法解决此问题。 任何形式的帮助都将受到高度赞赏,因为这是我尝试过的第一个例子。 提前谢谢。
答案 0 :(得分:1)
发送请求时检查是否设置了SOAPAction。如果没有,您可以通过两种方式指定它:
在发送中介之前设置属性
<property name="SOAPAction" value="urn:SOAPAction" scope="transport"/>
您可以在客户端代码中指定SOAPAction。在选项中指定它,如下所示。
options.setAction("urn:SOAPAction");
答案 1 :(得分:1)
点击&#34;来源视图&#34;对于你的代理并把这行:
...
<parameter name="serviceType">proxy</parameter>
<parameter name="disableOperationValidation">true</parameter>
...
标签前的:<description/>
答案 2 :(得分:0)
您正在使用Wso2ESB,因此您必须指定如下:
@WebMethod(action =“testMethod”,operationName =“testMethod”) public String testMethod()
上述注释必须在Web服务实现类中使用。
答案 3 :(得分:0)
在Websphere Application Server上,在相同的情况下,它有助于在服务器停止时删除Temp文件夹。