java - How can I add security header in message? -


i wanto built simple soap client in java call soap java web service. have import wsdl in project ad built client. if try run code, have erro:

avvertenza: unable find required classes (javax.activation.datahandler , javax.mail.internet.mimemultipart). attachment support disabled. axisfault faultcode: {http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd}invalidsecurity faultsubcode: faultstring: error: no security header found in message faultactor: faultnode: faultdetail: {http://xml.apache.org/axis/}stacktrace:error: no security header found in message @ org.apache.axis.message.soapfaultbuilder.createfault(soapfaultbuilder.java:222) @ org.apache.axis.message.soapfaultbuilder.endelement(soapfaultbuilder.java:129) @ org.apache.axis.encoding.deserializationcontext.endelement(deserializationcontext.java:1087) @ com.sun.org.apache.xerces.internal.parsers.abstractsaxparser.endelement(abstractsaxparser.java:609) @ com.sun.org.apache.xerces.internal.impl.xmldocumentfragmentscannerimpl.scanendelement(xmldocumentfragmentscannerimpl.java:1782) @ com.sun.org.apache.xerces.internal.impl.xmldocumentfragmentscannerimpl$fragmentcontentdriver.next(xmldocumentfragmentscannerimpl.java:2973) @ com.sun.org.apache.xerces.internal.impl.xmldocumentscannerimpl.next(xmldocumentscannerimpl.java:606) @ com.sun.org.apache.xerces.internal.impl.xmlnsdocumentscannerimpl.next(xmlnsdocumentscannerimpl.java:117).........

the problem is:

error: no security header found in message

how can fixed problem?

edit::

this code thai use:

string keystorepath = "c:\\users\\michele.castriotta\\desktop\\certificati\\keystore_healthnetbr.jks"; fileinputstream = new fileinputstream(keystorepath); keystore keystore = keystore.getinstance(keystore.getdefaulttype()); keystore.load(is, "changeit".tochararray()); string alias = "edotto";  key key = keystore.getkey(alias, "changeit".tochararray());  if (key instanceof privatekey) {     // certificate of public key     certificate cert = keystore.getcertificate(alias);      // public key     publickey publickey = cert.getpublickey();      // return key pair     new keypair(publickey, (privatekey) key); }   attributiautorizzativi attributi = new attributiautorizzativi("getelencopaidomiciliare",         "healthnetbr","ris000282");    elencopaidomiciliarerequest criterioricerca = new elencopaidomiciliarerequest(); criterioricerca.setdatainizioriferimento("01/12/2000"); criterioricerca.setdatafineriferimento("01/07/2015"); criterioricerca.setcodicenazionale("160114"); criterioricerca.settipologiaassistenzaautorizzata(0); criterioricerca.setdistretto("53");   getelencopaidomiciliare request = new getelencopaidomiciliare(); request.setcriteriricerca(criterioricerca);  //  pianoassistenzialeresidenzialeservice service = new pianoassistenzialeresidenzialeservicelocator(); pianoassistenzialeresidenziale stub = service.getpianoassistenzialeresidenzialeport();   pianoassistenzialeresidenzialeproxy client = new pianoassistenzialeresidenzialeproxy(); client.getelencopaidomiciliare(request, attributi);  system.out.println("done"); 

if developing client axis2 can use rampart, if not, can add wsse headers creating , adding elements manually

soapheader header = context.getmessage().getsoappart().getenvelope().addheader(); header.addchildelement(securitysoapelement); 

or can use wss4j (best choice)


Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -