2012-08-02 83 views
1

项目阶段:评估ESB。WSo2 WSDL代理服务错误

我们正在考虑将WSO2作为ESB解决方案,但遇到了许多问题。

目前我正试图获得一个简单的WSDL代理服务工作,并没有能力。

这些都是我做

  • 的事情创建一个基于WSDL代理
  • 点击了 “尝试这种服务”
  • 在参数(邮编)填充
  • 被点击发送

响应如下

<TryitProxyError h:status="SOAP envelope error" xmlns:h="http://wso2.org/ns/TryitProxy">**org.apache.axis2.AxisFault: Transport error: 411 Error: Length Required**</TryitProxyError> 

详细日志

[2012-08-02 10:48:21,556] INFO - HTTPSender Unable to sendViaPost to url[http://localhost:8280/services/MYWeather.MYWeatherHttpSoap12Endpoint] 
org.apache.axis2.AxisFault: Transport error: 411 Error: Length Required 
    at org.apache.axis2.transport.http.HTTPSender.handleResponse(HTTPSender.java:308) 
    at org.apache.axis2.transport.http.HTTPSender.sendViaPost(HTTPSender.java:194) 
    at org.apache.axis2.transport.http.HTTPSender.send(HTTPSender.java:75) 
    at org.apache.axis2.transport.http.CommonsHTTPTransportSender.writeMessageWithCommons(CommonsHTTPTransportSender.java:449) 
    at org.apache.axis2.transport.http.CommonsHTTPTransportSender.invoke(CommonsHTTPTransportSender.java:276) 
    at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:443) 
    at org.apache.axis2.description.OutInAxisOperationClient.send(OutInAxisOperation.java:406) 
    at org.apache.axis2.description.OutInAxisOperationClient.executeImpl(OutInAxisOperation.java:229) 
    at org.apache.axis2.client.OperationClient.execute(OperationClient.java:165) 
    at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:555) 
    at org.apache.axis2.client.ServiceClient.sendReceive(ServiceClient.java:531) 
    at org.apache.jsp.admin.jsp.WSRequestXSSproxy_005fajaxprocessor_jsp._jspService(WSRequestXSSproxy_005fajaxprocessor_jsp.java:272) 
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:332) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.wso2.carbon.ui.JspServlet.service(JspServlet.java:161) 
    at org.wso2.carbon.ui.TilesJspServlet.service(TilesJspServlet.java:80) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.eclipse.equinox.http.helper.ContextPathServletAdaptor.service(ContextPathServletAdaptor.java:36) 
    at org.eclipse.equinox.http.servlet.internal.ServletRegistration.handleRequest(ServletRegistration.java:90) 
    at org.eclipse.equinox.http.servlet.internal.ProxyServlet.processAlias(ProxyServlet.java:111) 
    at org.eclipse.equinox.http.servlet.internal.ProxyServlet.service(ProxyServlet.java:67) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.wso2.carbon.bridge.BridgeServlet.service(BridgeServlet.java:164) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100) 
    at org.wso2.carbon.server.CarbonStuckThreadDetectionValve.invoke(CarbonStuckThreadDetectionValve.java:154) 
    at org.wso2.carbon.server.TomcatServer$1.invoke(TomcatServer.java:254) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:399) 
    at org.apache.coyote.http11.Http11NioProcessor.process(Http11NioProcessor.java:396) 
    at org.apache.coyote.http11.Http11NioProtocol$Http11ConnectionHandler.process(Http11NioProtocol.java:356) 
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1534) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) 
    at java.lang.Thread.run(Thread.java:662) 

回答

2

贵后端的Web服务器支持HTTP/1.1?如果没有,那么这可能是这个问题。因为最新版本的WSO2 ESB默认使用HTTP/1.1进行Web服务通信。在HTTP/1.1中,它默认使用分块的Transfer-Encoding响应头来代替HTTP/1.0的内容长度头。因此,您可能希望禁用分块响应或强制通过HTTP/1.0发送消息。

将以下属性添加到您的ESB代理服务配置将禁用分块。

<property name="DISABLE_CHUNKING" value="true" scope="axis2"/> 

希望它有帮助!

Regards, Prabath

+0

感谢您的回复。仍然有麻烦。 – 2012-08-07 13:52:43