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.

Reply via email to