Hi,
There is a http component to receive HTTP Post data and forward the data
to another application, request.getParameter("testparam") is empty when try
to get the POST data from HttpServletRequest(in HTTPMarshaler class), I used
HTML form and Java HTTP client to test but both failed. I'm sure the method
is POST.
It works when change to GET method.
is it a bug of http component or Jetty? or something I need to config?
Please advise.
<http:provider service="tns:ProviderService"
endpoint="ep"
locationURI="http://localhost:8000/test/price" >
</http:provider>
<http:consumer service="tns:ConsumerService"
endpoint="jbi"
defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
locationURI="http://0.0.0.0:8199/price"
targetService="tns:ProviderService"
marshaler="#marshaler" />
<bean id="marshaler" class="demo.HTTPMarshaler" />
public class HTTPMarshaler extends DefaultHttpConsumerMarshaler {
private SourceTransformer sourceTransformer = new SourceTransformer();
public MessageExchange createExchange(HttpServletRequest request,
ComponentContext context) throws Exception {
System.out.println("parm:"+getParameterList(request));
MessageExchange me = context.getDeliveryChannel()
.createExchangeFactory().createExchange(getDefaultMep());
NormalizedMessage in = me.createMessage();
try{
in.setContent(new
StringSource(request.getParameter("testparam")));
}catch(Exception e){
e.printStackTrace();
in.setContent(new
StringSource(getInputString(request)));
}
me.setMessage(in, "in");
System.out.println("end createExchange");
return me;
}
public static String getParameterList(HttpServletRequest request){
String parmStr="<?xml version=\"1.0\"?><ParameterList>\n";
java.util.Enumeration en=request.getParameterNames();
int i=0;
while (en.hasMoreElements()){
parmStr+="<Parameter index=\""+(++i)+"\">";
String name=en.nextElement().toString();
parmStr+="<Name>"+name+"</Name>";
parmStr += "<Value><!-- " +
request.getParameter(name) +
"--></Value>";
parmStr+="</Parameter>"+"\n";
}
en=request.getAttributeNames();
while (en.hasMoreElements()){
parmStr+="<Attribute index=\""+(++i)+"\">";
String name=en.nextElement().toString();
parmStr+="<Name>"+name+"</Name>";
parmStr += "<Value><!-- " +
request.getAttribute(name) +
"--></Value>";
parmStr+="</Attribute>"+"\n";
}
en=request.getHeaderNames();
while (en.hasMoreElements()){
parmStr+="<Header index=\""+(++i)+"\">";
String name=en.nextElement().toString();
parmStr+="<Name>"+name+"</Name>";
parmStr += "<Value><!-- " +
request.getHeader(name) +
"--></Value>";
parmStr+="</Header>"+"\n";
}
parmStr+="</ParameterList>"+"\n";
return parmStr;
}
--
View this message in context:
http://www.nabble.com/HTTP-Post-method-issue-when-use-http%3Aconsumer-%28Jetty-issue-%29-tp23976283p23976283.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.