webservice 客户端发送报文报错An error was discovered processing the heade

csu_chaoyz 2016-01-19 01:02:59
在实习公司对接第三方公司软件用到webservice完全零基础,遇到个报错不知如何处理求帮助

报错信息

AxisFault
faultCode: {http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}InvalidSecurity
faultSubcode:
faultString: An error was discovered processing the <wsse:Security> header
faultActor:
faultNode:
faultDetail:
{http://xml.apache.org/axis/}stackTrace:An error was discovered processing the <wsse:Security> header
at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanEndElement(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl.parse(Unknown Source)
at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
at org.apache.axis.client.Call.invoke(Call.java:2767)
at org.apache.axis.client.Call.invoke(Call.java:2443)
at org.apache.axis.client.Call.invoke(Call.java:2366)
at org.apache.axis.client.Call.invoke(Call.java:1812)
at com.landray.kmss.sys.notify.webservice.spring.SysNotifyMainWebServiceImpServiceSoapBindingStub.addSysNotifyMain(SysNotifyMainWebServiceImpServiceSoapBindingStub.java:402)
at com.landray.kmss.sys.notify.webservice.ISysNotifyMainWebServiceProxy.addSysNotifyMain(ISysNotifyMainWebServiceProxy.java:50)
at xmodule.msgService.MsgHttpApi.testMsgService(MsgHttpApi.java:61)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at xserver.service.http.protocol.JsonProtocol.invoke(JsonProtocol.java:126)
at xmodule.auth.AuthedJsonProtocol.process(AuthedJsonProtocol.java:74)
at xserver.service.http.ApiGateway._service(ApiGateway.java:157)
at xserver.service.http.ApiGateway.service(ApiGateway.java:131)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:769)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:221)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1125)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1059)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:226)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97)
at org.eclipse.jetty.server.Server.handle(Server.java:483)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:290)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:248)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:606)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:535)
at java.lang.Thread.run(Thread.java:745)


{http://xml.apache.org/axis/}hostname:localhost.localdomain

我的代码
SysNotifyMainWebServiceImpServiceLocator serviceLocator = new
SysNotifyMainWebServiceImpServiceLocator();
serviceLocator.setSysNotifyMainWebServiceImpPortEndpointAddress(endpoint);
SysNotifyMainWebServiceImpServiceSoapBindingStub stub =
(SysNotifyMainWebServiceImpServiceSoapBindingStub) serviceLocator.getSysNotifyMainWebServiceImpPort();

String WSSE_PREFIX = "wsse";
String WSSE_NS = "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd";
SOAPFactory sf = SOAPFactory.newInstance();
SOAPElement ehl = sf.createElement("Header", "soap", "http://schemas.xmlsoap.org/soap/envelope/");
SOAPElement wsSecHeaderElm = sf.createElement("Security", WSSE_PREFIX, WSSE_NS);
wsSecHeaderElm.setAttribute("soap:mustUnderstand", "1");
QName qname = wsSecHeaderElm.createQName("wsu", "xmlns");
wsSecHeaderElm.addAttribute(qname, "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd");
SOAPElement userNameTokenElm = sf.createElement("UsernameToken", WSSE_PREFIX, WSSE_NS);
userNameTokenElm.setAttribute("wsu:Id", "UsernameToken-1");
SOAPElement userNameElm = sf.createElement("Username", WSSE_PREFIX, WSSE_NS);
SOAPElement passwdElm = sf.createElement("Password", WSSE_PREFIX, WSSE_NS);
passwdElm.setAttribute("Type", "http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText");
userNameElm.addTextNode(name);
passwdElm.addTextNode(password);
userNameTokenElm.addChildElement(userNameElm);
userNameTokenElm.addChildElement(passwdElm);
wsSecHeaderElm.addChildElement(userNameTokenElm);
ehl.addChildElement(wsSecHeaderElm);
SOAPHeaderElement soapHeaderElement = new SOAPHeaderElement(ehl);
stub.setHeader(soapHeaderElement);
...全文
487 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
海会圣贤 2016-01-20
  • 打赏
  • 举报
回复
安全验证没通过,看看是不是少添加了什么

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧