客户端发送了一个soap给servlet,servlet给客户端返回soap时老是出问题,用了各种办法,请大家帮帮忙,多谢了服务器端代码
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("application/soap+xml;charset=UTF-8");
MessageFactory factory;
try {
factory = MessageFactory.newInstance();
SOAPMessage r = factory.createMessage(getMimeHeaders(request), request.getInputStream()); SOAPBody sb = r.getSOAPBody();
System.out.println("==" + sb.getAttribute("sss"));
SOAPMessage back = factory.createMessage();
SOAPBody soa = back.getSOAPBody();
//soa.addAttribute(new QName("xxx"), "sdfsdfs");
back.writeTo(response.getOutputStream());
} catch (SOAPException ex) {
System.out.println("错误:"+ex.getMessage());
}
}
客户端代码
public class SoapClient {
public static void main(String str[]){
SOAPConnectionFactory factory;
try {
factory = SOAPConnectionFactory.newInstance();
SOAPConnection conn=factory.createConnection();
MessageFactory mf=MessageFactory.newInstance();
SOAPMessage soapMsg=mf.createMessage();
SOAPBody sb=soapMsg.getSOAPBody();
sb.addAttribute(new QName("sss"), "sssssss");
soapMsg.setContentDescription("application/soap+xml");
SOAPMessage resp = conn.call(soapMsg,"http://localhost:8084/SoapServlet/SoapServlet");
SOAPBody ss=resp.getSOAPBody();
System.out.println(ss.getAttribute("xxx"));
} catch (SOAPException ex) {
Logger.getLogger(SoapClient.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedOperationException ex) {
Logger.getLogger(SoapClient.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
错误信息
javax.xml.soap.SOAPException: InputStream does not represent a valid SOAP 1.2 Message
at com.sun.xml.internal.messaging.saaj.soap.ver1_2.SOAPPart1_2Impl.createEnvelopeFromSource(SOAPPart1_2Impl.java:72)
at com.sun.xml.internal.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:135)
at com.sun.xml.internal.messaging.saaj.soap.MessageImpl.getSOAPBody(MessageImpl.java:1345)
at soap.client.SoapClient.main(SoapClient.java:35)
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("application/soap+xml;charset=UTF-8");
MessageFactory factory;
try {
factory = MessageFactory.newInstance();
SOAPMessage r = factory.createMessage(getMimeHeaders(request), request.getInputStream()); SOAPBody sb = r.getSOAPBody();
System.out.println("==" + sb.getAttribute("sss"));
SOAPMessage back = factory.createMessage();
SOAPBody soa = back.getSOAPBody();
//soa.addAttribute(new QName("xxx"), "sdfsdfs");
back.writeTo(response.getOutputStream());
} catch (SOAPException ex) {
System.out.println("错误:"+ex.getMessage());
}
}
客户端代码
public class SoapClient {
public static void main(String str[]){
SOAPConnectionFactory factory;
try {
factory = SOAPConnectionFactory.newInstance();
SOAPConnection conn=factory.createConnection();
MessageFactory mf=MessageFactory.newInstance();
SOAPMessage soapMsg=mf.createMessage();
SOAPBody sb=soapMsg.getSOAPBody();
sb.addAttribute(new QName("sss"), "sssssss");
soapMsg.setContentDescription("application/soap+xml");
SOAPMessage resp = conn.call(soapMsg,"http://localhost:8084/SoapServlet/SoapServlet");
SOAPBody ss=resp.getSOAPBody();
System.out.println(ss.getAttribute("xxx"));
} catch (SOAPException ex) {
Logger.getLogger(SoapClient.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedOperationException ex) {
Logger.getLogger(SoapClient.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
错误信息
javax.xml.soap.SOAPException: InputStream does not represent a valid SOAP 1.2 Message
at com.sun.xml.internal.messaging.saaj.soap.ver1_2.SOAPPart1_2Impl.createEnvelopeFromSource(SOAPPart1_2Impl.java:72)
at com.sun.xml.internal.messaging.saaj.soap.SOAPPartImpl.getEnvelope(SOAPPartImpl.java:135)
at com.sun.xml.internal.messaging.saaj.soap.MessageImpl.getSOAPBody(MessageImpl.java:1345)
at soap.client.SoapClient.main(SoapClient.java:35)
解决方案 »
- hibernate从Oracle数据库取浮点数的问题。
- Unix下weblogic里用JFreeChart
- 请教大侠在Struts中的MVC2设计模式中的二个小问题,能不能给个标准的答案?谢谢!
- 请教前人怎么开始学web?(本人菜)
- linux下与apache的连接.
- 请问高手怎么用jsp向sql2000的数据库插入图片image字段?
- 关于response的问题
- 一个突然发现的现象,不知道对不对,请回答(详细)
- fullcalendar在周和日模式下 点击日程事件没有但应,并且日程的缩放也失灵,求解释
- 如何用正则筛选出123456
- MyEclipse8.5 问题(win7旗舰版 32位)
- 谁有jsp网页中嵌入暴风影音播放器可以自动播放ts文件的代码
factory = MessageFactory.newInstance(SOAPConstants.SOAP_1_2_PROTOCOL);