Please see the following:

http://nagoya.apache.org/wiki/apachewiki.cgi?AxisProjectPages/AxisJAXMRelati
onship


-----Original Message-----
From: Nachi [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, November 12, 2003 11:32 PM
To: [EMAIL PROTECTED]
Subject: JAXM Support


Hello All,

I am facing some problems while deploying my service in Axis (in
weblogic8.1).
My implementation is some thing like I should deploy a webservice(message -
JAXM) which should consume attachements.

I have some doubts. Does Axis support JAXM .. ?
I couldn't find javax.xml.messaging.JAXMServlet  &
javax.xml.messaging.ReqRespListener in axis jars.

As this both classes are not there I am using weblogic jars for that.

So when I try to invoke the service ( I could see my service is deployed tho
axis admin page & I could able to see wsdl of that also )its giving some
exception like


- InvocationTargetException:
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native
Method)

        at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct
orAccessorImpl.java:39)
        at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC
onstructorAccessorImpl.java:27)
        at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
        at org.apache.axis.Message.setup(Message.java:317)
        at org.apache.axis.Message.<init>(Message.java:235)
        at
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:81
0)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBas
e.java:339)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
(ServletStubImpl.java:1053)
        at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:387)
        at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:305)
        at
weblogic.servlet.internal.WebAppServletContext$ServletInvocationActio
n.run(WebAppServletContext.java:6310)
        at
weblogic.security.acl.internal.AuthenticatedSubject.doAs(Authenticate
dSubject.java:317)
        at
weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
118)
        at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppSe
rvletContext.java:3622)
        at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestIm
pl.java:2569)
        at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
        at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)
Caused by: Error reading data stream:  Root part containing SOAP envelope
not fo
und.  contentId = null
        at
org.apache.axis.attachments.MultiPartRelatedInputStream.<init>(MultiP
artRelatedInputStream.java:371)
        at
org.apache.axis.attachments.AttachmentsImpl.<init>(AttachmentsImpl.ja
va:145)
        ... 20 more
<Nov 13, 2003 9:48:56 AM GMT+05:30> <Error> <HTTP> <BEA-101020>
<[ServletContext
(id=5267983,name=axis,context-path=/axis)] Servlet failed with Exception
java.lang.RuntimeException
        at org.apache.axis.Message.setup(Message.java:326)
        at org.apache.axis.Message.<init>(Message.java:235)
        at
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:81
0)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBas
e.java:339)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at
weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run
(ServletStubImpl.java:1053)
        at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm
pl.java:387)
        at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubIm

my class is
import java.io.*;

import java.util.Iterator;
import java.util.HashMap;
import java.net.URL;

import javax.activation.DataHandler;
import javax.xml.soap.*;
import javax.xml.messaging.*;
import javax.xml.transform.*;
import javax.xml.transform.stream.*;

import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NamedNodeMap;
import org.w3c.dom.NodeList;
import javax.xml.soap.MessageFactory;

// Added for JAX-RPC
import javax.xml.rpc.ServiceFactory;
import javax.xml.rpc.Service;
import javax.xml.rpc.Call;
import javax.xml.rpc.ParameterMode;
import javax.xml.rpc.ServiceException;
import javax.xml.rpc.JAXRPCException;
import javax.xml.namespace.QName;
public class ReverseProxyDEM extends javax.xml.messaging.JAXMServlet
implements javax.xml.messaging.ReqRespListener
{
static javax.xml.soap.MessageFactory fac = null;

  static {
   try{
    fac = javax.xml.soap.MessageFactory.newInstance();
    }
    catch(Exception ex){
      ex.printStackTrace();
    }
   }

   public void init(javax.servlet.ServletConfig servletConfig) throws
javax.servlet.ServletException {
       super.init(servletConfig);

      System.setProperty("javax.xml.soap.MessageFactory",

"com.sun.xml.messaging.saaj.soap.MessageFactoryImpl" );

   }

   public javax.xml.soap.SOAPMessage onMessage(javax.xml.soap.SOAPMessage
message)
   {
       System.out.println("Inside the onMessage method");
      try{

           String xURL             =
"http://host:port/webdir/SimpleJAXMReceive";;
//           String xml = null;

           //
        URL endPoint = new URL(xURL);
        SOAPConnectionFactory scf = SOAPConnectionFactory.newInstance();
        SOAPConnection connection = scf.createConnection();

         int count = message.countAttachments();
         System.out.println("There are : "+count +" message parts);

        Iterator itr = message.getAttachments();
        AttachmentPart ap = null;




            // Add the attachment part to the message.


        while (itr.hasNext())
        {
            ap = (AttachmentPart)itr.next();
            System.out.println(ap.getContentLocation());
            String obj = (String)ap.getContent();
            System.out.println("----------attachment obj ---"+obj);
            System.out.println(ap.getContentType());
        }



        SOAPMessage reply = connection.call(message, endPoint);

        // Print the reply message to the standard output
        System.out.println("\n\nContent of the reply message: \n");
        reply.writeTo(System.out);

         return reply;
       }
       catch(Exception e){
           System.out.println("Error in the SOAP message processing");
           e.printStackTrace();
       }
       return null;
   }
  }





I don't know I might be going wrong some where.

Any pointers / code sample will be really appreciated :)

Advance thanks


Thanks
Nachi


Reply via email to