Could someone help on this issue?
laolong wrote:
>
> 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-tp23976283p23980193.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.