当前位置:编程学习 > JAVA >>

saaj发送soap消息出错

原代码:
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

--------------------编程问答-------------------- 接收消息源代码:

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);
     }

  } 

}
--------------------编程问答-------------------- 都没人会嘛
一直报错:

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包,还报这些锤子错误 --------------------编程问答-------------------- weblogic的jar包哪里有啊? 
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,