我想在JAVA中构建一个简单的soap客户端来调用soap JAVA Web服务。 所以我在我的项目广告中构建了客户端的导入WSDL。因此,如果我尝试运行我的代码,我就有这个错误:
AVVERTENZA:无法找到所需的类(javax.activation.DataHandler和javax.mail.internet.MimeMultipart)。附件支持已禁用。 AxisFault faultCode:{http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd} InvalidSecurity faultSubcode: faultString:错误:消息中找不到安全标头 faultActor: faultNode: faultDetail: {http://xml.apache.org/axis/} stackTrace:错误:消息中找不到安全标头 在org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222) 在org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129) at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087) 在com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:609) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1782) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl $ FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2973) at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606) 在com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:117).........
问题是:
错误:消息中找不到安全标头
我该如何解决这个问题?
EDIT ::
这是我使用的代码:
String keyStorePath = "C:\\Users\\michele.castriotta\\Desktop\\Certificati\\keystore_healthnetbr.jks";
FileInputStream is = 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) {
// Get certificate of public key
Certificate cert = keystore.getCertificate(alias);
// Get public key
PublicKey publicKey = cert.getPublicKey();
// Return a 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");