原代码:
package com.channelsoft.saaj.soap;
import java.io.IOException;  
import java.net.URL;  
  
import javax.xml.messaging.URLEndpoint;  
import javax.xml.soap.*;  
  
public class SOAPSender {  
  
    /** 
     * @param args 
     * @throws SOAPException 
     * @throws IOException 
     */  
    public static void main(String[] args) throws IOException, SOAPException {  
        SOAPSender sender = new SOAPSender();  
        SOAPMessage message = sender.getMessage();  
        sender.send(message);  
  
    }  
  
    public void send(SOAPMessage message) throws IOException, SOAPException {  
        // Create SOAP connection  
        SOAPConnectionFactory scf = SOAPConnectionFactory.newInstance();  
        SOAPConnection sc = scf.createConnection();    
        // Specify the endpoint  
        URL url = new URL("http://127.0.0.1:8080/saaj/Receiver");  
  
        // Send the SOAP message  
        SOAPMessage response = sc.call(message, url);  
  
        if (response != null) {  
            // Print the message to console  
            System.out.println("Receive SOAP message from localhost:");  
            response.writeTo(System.out);  
        } else {  
            System.err.println("No response received from partner!");  
        }  
  
        sc.close();  
  
    }  
  
    public SOAPMessage getMessage() throws SOAPException {  
  
        // Create a message factory  
        MessageFactory mf = MessageFactory.newInstance();  
        // Create a SOAP message  
        SOAPMessage message = mf.createMessage();  
  
        SOAPEnvelope envelope = message.getSOAPPart().getEnvelope();  
        // Add a namespace declaration to envelope element  
        envelope.addNamespaceDeclaration("cwmp", "some uri");  
  
        // Create header element  
        SOAPHeader header = envelope.getHeader();  
  
        // Create body element  
        SOAPBody body = envelope.getBody();  
        SOAPBodyElement bodyElement = body.addBodyElement(envelope.createName(  
                "Test", "cwmp", "uri"));  
        // add content to Test element  
        bodyElement.addTextNode("Just a test! ");  
  
        try {  
            // Print the message we have created above to console  
            message.writeTo(System.out);  
        } catch (IOException e) {  
  
            e.printStackTrace();  
        }  
        return message;  
    }  
  
}   报错信息:
<?xml version="1.0" encoding="utf-8" standalone="yes"?><env:Envelope xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:cwmp="some uri" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><env:Header/><env:Body><cwmp:Test xmlns:cwmp="uri">Just a test! </cwmp:Test></env:Body></env:Envelope>Exception in thread "main" javax.xml.soap.SOAPException: Failed to send message: java.io.IOException: The server at http://127.0.0.1:8080/saaj/Receiver returned a 500 error code (Internal Server Error).  Please ensure that your URL is correct, and the web service has deployed. 
at weblogic.webservice.core.soap.SOAPConnectionImpl.call(SOAPConnectionImpl.java:61)
at com.channelsoft.saaj.soap.SOAPSender.send(SOAPSender.java:36)
at com.channelsoft.saaj.soap.SOAPSender.main(SOAPSender.java:18)
Caused by: java.io.IOException: The server at http://127.0.0.1:8080/saaj/Receiver returned a 500 error code (Internal Server Error).  Please ensure that your URL is correct, and the web service has deployed. 
at weblogic.webservice.binding.http11.Http11ClientBinding.handleErrorResponse(Http11ClientBinding.java:123)
at weblogic.webservice.binding.http11.Http11ClientBinding.receive(Http11ClientBinding.java:220)
at weblogic.webservice.core.soap.SOAPConnectionImpl.call(SOAPConnectionImpl.java:57)
... 2 more

解决方案 »

  1.   

    接收消息源代码:package com.channelsoft.saaj.soap;import java.io.File;
    import java.io.FileOutputStream;
    import java.util.Enumeration;import javax.servlet.ServletConfig;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.xml.messaging.JAXMServlet;
    import javax.xml.messaging.ReqRespListener;
    import javax.xml.soap.MessageFactory;
    import javax.xml.soap.SOAPEnvelope;
    import javax.xml.soap.SOAPMessage;public class ReceiveServlet extends JAXMServlet implements ReqRespListener {  private static final long serialVersionUID = 1L;   
     static MessageFactory mf = null; 
     static {   
      try {   
             mf = MessageFactory.newInstance();   
          } catch (Exception e) {   
             e.printStackTrace();   
          }   
       }; 
       
       public ReceiveServlet() {   
              super();   
    }
    @Override
    public SOAPMessage onMessage(SOAPMessage msg) {
    // TODO Auto-generated method stub
    SOAPMessage resp = null; 
    try {   
    System.out.println("Received message:");   
     msg.writeTo(new FileOutputStream(new File("../webapps/soapmessage.xml")));// I use tomcat so set this   
                 resp = mf.createMessage();   
     SOAPEnvelope se = resp.getSOAPPart().getEnvelope();   
     se.getBody().addChildElement(se.createName("ResponseMessage")).addTextNode("Received Message,Thanks");    return resp;   
    } catch (Exception e) {   
    e.printStackTrace();   
    }   
     return resp;   
    }

    public void init(ServletConfig config) throws ServletException {   
          System.out.println("init message:");   
           super.init(config);   
        Enumeration enu=config.getInitParameterNames();
        while(enu.hasMoreElements()){
         String paraName=(String)enu.nextElement();
         System.out.println(paraName+": "+paraName);
         }

      } }
      

  2.   

    都没人会嘛
    一直报错:java.lang.ClassNotFoundException: javax.xml.messaging.ReqRespListener
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:621)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2527)
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1010)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1483)
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1095)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:809)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:129)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859)
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579)
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555)
    at java.lang.Thread.run(Thread.java:619)
    我都引入了jar包,还报这些锤子错误
      

  3.   

    weblogic的jar包哪里有啊?