首页 文章

WSO2 ESB不会将多部分文件转发到代理服务

提问于
浏览
1

Background: 我有一个基于Spring的REST Web服务,它接收一个不到1k的xml文件,在处理之后,将消息发布到在ActiveMQ上运行的主题 . 应用程序战争部署到Tomcat实例,一切都像魅力一样,我收到一个Http 201(创建)响应 . 然后我创建了一个简单的WSO2 ESB代理服务,它使用Pass-through协议将相同的消息发送到Tomcat上部署的REST服务 . 这在我的本地机器上按预期工作,我得到了一个Http 201(已创建) .

Issue: 当代理服务部署在同一网络中的远程WSO2 ESB实例上时,与201(创建)相比,我开始获得Http 202(已接受)响应 . 此问题仅适用于具有多部分请求参数的REST服务 . 我能够将几个参数传递给另一个REST网络服务而没有任何问题 . 我使用RestTemplate和AdvancedRestClient(Chrome插件)来提交消息 .

My Configuration:

  • WSO2 ESB:4.7.0

  • Tomcat:7.0.42

  • Oracle:JDK 1.7.0_45

  • ActiveMQ:5.8.0

  • 操作系统:Debian Sqeeze

Troubleshooting steps:<ESB_HOME> /repository/conf/log4.properties中的每个条目的日志级别设置为DEBUG,没有任何重要指向问题在包含WSO2 ESB的同一远程计算机上安装Tomcat和ActiveMQ,直接针对远程Tomcat发布并按预期收到Http 201

这是我的代理定义 <ESB_HOME> /repository/deployment/server/synapse-configs/default/proxy-services/EventProxy.xml

<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
   name="EventProxy"
   transports="http"
   startOnLoad="true"
   trace="enable">
   <target>
      <inSequence>
         <log level="full" />
         <send>
            <endpoint>
               <address uri="http://localhost:8080/services/event"/>
            </endpoint>
         </send>
      </inSequence>
      <outSequence>
         <log level="full" />
         <send/>
      </outSequence>
   </target>
</proxy>

在我的代理中的inSequence下尝试了以下属性但没有成功 .

  • <property name="POST_TO_URI" value="true" scope="axis2" type="STRING" />

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

  • 将Tomcat侦听端口更改为9000并在服务代理文件中

  • 已禁用主序列中的过滤介体 <ESB_HOME> /repository/deployment/server/synapse-configs/default/sequences/main.xml

  • 在发送inSequence后添加了 <drop/> mediator,位于 <ESB_HOME> /repository/deployment/server/synapse-configs/default/sequences/main.xml

在远程服务器上运行时,是否需要进行任何外部设置(增加某种超时)?我是WSO2的新手并且没有想法,所以任何有用的指针将不胜感激 .

Additional Steps performed:

使用DNS名称和IP但类似的202响应更改了 <ESB_HOME> /repository/conf/carbon.xml中的 <Host> 元素 .

谢谢 .

1 回答

  • 1

    经过大量的调试,日志级别,tcpdump和wireshark,让我想起make文件空间问题,显然我的测试客户端正在提交一个带有空格的url,而WSO2正在回复202,为此被发现并且最后的空间被移除,一切都按预期工作 .

    我对自己感到失望,但也因wso2 esb没有正确回应而感到失望,它应该像“无法找到代理服务”或类似的东西一样回应 .

相关问题