Here is the concerned extract of my sitemap :
        <map:pipeline>
            <map:generate type="stream">
                <map:parameter name="defaultContentType" value="text/xml"/>
            </map:generate>
            <map:match pattern="tentative">
                <map:transform type="testTransformer" />
                <map:serialize type="xml"/>
            </map:match>
        </map:pipeline>

Here, a part of the applicationContext.xml (Spring declaration of my transformer) :
        <bean name="testService"
        class=" org.springframework.transaction.interceptor.TransactionProxyFactoryBean">
        <property name="transactionManager">
            <ref bean="maTransactionManager" />
        </property>
        <property name="target">
            <bean class="xxxx.TestService">
                <property name="maxml2ObjectsService">
                    <ref bean="maxml2ObjectsService" />
                </property>
                <property name="serviceProgramsService">
                    <ref bean="serviceProgramsService" />
                </property>
            </bean>
        </property>
        <property name="transactionAttributes">
            <props>
                <prop key="test">PROPAGATION_REQUIRED</prop>
            </props>
        </property>
    </bean>
   
    <bean id="testTransformer"
        name="org.apache.cocoon.transformation.Transformer/testTransformer"
        scope="prototype"
        class="xxxx.TestTransformer">
        <property name="testService">
            <ref bean="testService"/>
        </property>
    </bean>

What I had in my transformer to log the XML stream (wich is effectively received and logged by the transformer) :
        public Document transform(Document document) {
           
            try {
                DOMSource domSource = new DOMSource(document);
                StringWriter writer = new StringWriter();
                StreamResult result = new StreamResult(writer);
                TransformerFactory tf = TransformerFactory.newInstance();
                Transformer transformer = tf.newTransformer();
                transformer.transform(domSource, result);
                log.debug("TRANSFORMATION:" + writer.toString ());
            }
            catch (TransformerConfigurationException e) {
                e.printStackTrace();
            }
            catch (TransformerException e) {
                e.printStackTrace ();
            }               
           
            return document;
        }

I use HttpClient to send the post request containing the XML stream and to get the XML stream received (unhappily NULL) :
        HttpClient client = new HttpClient();

        StringBuffer newUrl = new StringBuffer();
        newUrl.append(url);

        PostMethod method = new PostMethod(newUrl.toString());
        method.setRequestBody(new FileInputStream(xmlFile));
        String xml = post.getResponseBodyAsString();
        System.out.println("Exported virtual XML : " + maxml); // Here the response is NULL

Thank for your help

2007/11/16, warrell harries <warrell.harries@googlemail.com>:
Hi Jean-Claude,

What generator are you using in your pipeline match? Can you show us the sitemap? You would need to use the Request generator or another one that 'loads' the pipeline with the contents of the HTTP Request.

Cheers


On 16/11/2007, Jean-Claude Vogel < vogel.jeanclaude@gmail.com> wrote:
Hello guys,

I would like to write my own dom transformer. So I simply wrote the following in order to get firstly an identity transformer :

public class TestTransformer extends AbstractDOMTransformer {      
        private Request request;

        public void setup(SourceResolver resolver, Map objectModel,
                          String src, Parameters par)
                          throws ProcessingException, SAXException, IOException {
            super.setup(resolver, objectModel, src, par);           
        }

        public Document transform(Document document) {
            //  When I log here I see that "document" contains what I want it to contain
            return document;
        }
}


To test I send an HTTP post request with an XML in its body, but I my HTTP request response body is desesperatly NULL.

I tried to log what happens in the transform method and I can see in my XML body sent by HTTP. The post response is ever empty.

What's wrong in my code please ?