Hi Steve,
Thanks for your reponse.
This is my class of senderWS:
import java.io.File;
import java.net.URL;
import java.net.MalformedURLException;
import java.util.Iterator;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.xml.soap.AttachmentPart;
import javax.xml.soap.MessageFactory;
import
javax.xml.soap.Name;
import javax.xml.soap.SOAPBody;
import javax.xml.soap.SOAPConnection;
import javax.xml.soap.SOAPConnectionFactory;
import javax.xml.soap.SOAPElement;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPFactory;
import javax.xml.soap.SOAPMessage;
import java.net.URI;
public class cliente{
private String hermes2SenderWSURLStr = "
http://127.0.0.1:8080/corvus/httpd/ebms/sender";
private String hermes2ReceiverListWSURLStr ="
http://127.0.0.1:8080/corvus/httpd/ebms/receiver_list";
private String hermes2ReceiverWSURLStr = "
http://127.0.0.1:8080/corvus/httpd/ebms/receiver";
private String nsURI = "
http://service.ebms.edi.cecid.hku.hk/";
private String nsPrefix="tns";
private URL senderWSURL;
/*
* campos necesarios para poder enviar el mensaje.
*/
private String cpaId = "cpaID";
private String service = "
http://127.0.0.1:8080/corvus/httpd/ebms/sender";
private String action = "order";
private String conversationId = "convId";
private String fromPartyId = "
http://127.0.0.1:8080/corvus/httpd/ebms/sender";
private String fromPartyType = "
http://127.0.0.1:8080/corvus/httpd/ebms/sender";
private String toPartyId = "localhost";
private String toPartyType = "localhost";
private String refToMessageId = "refToMessageId";
private String serviceType= "serviceType";
private String newMessageId ="Message01";
public static void main(String[] args) throws Exception {
cliente cli= new cliente();
cli.run();
}
private void run() throws Exception {
envoie();
}
private void envoie () throws Exception {
System.out.println("Envoie de message au serveur Hermes2!! ...");
SOAPConnection soapConn =SOAPConnectionFactory.newInstance().createConnection();
SOAPMessage request = MessageFactory.newInstance().createMessage();
SOAPBody soapBody = request.getSOAPBody();
soapBody.addChildElement(createElement("cpaId", nsPrefix, nsURI,cpaId));
soapBody.addChildElement(createElement("service", nsPrefix, nsURI,service));
soapBody.addChildElement(createElement("action", nsPrefix, nsURI,action));
soapBody.addChildElement(createElement("convId", nsPrefix, nsURI,conversationId));
soapBody.addChildElement(createElement("fromPartyId", nsPrefix,nsURI, fromPartyId));
soapBody.addChildElement(createElement("fromPartyType", nsPrefix,nsURI, fromPartyType));
soapBody.addChildElement(createElement("toPartyId", nsPrefix, nsURI,toPartyId));
soapBody.addChildElement(createElement("toPartyType", nsPrefix,nsURI, toPartyType));
soapBody.addChildElement(createElement("refToMessageId", nsPrefix,nsURI, refToMessageId));
soapBody.addChildElement(createElement("serviceType", nsPrefix,nsURI, serviceType));
/*payload [] payloads = { (new payload("cpa.xml", "application/xml"))};
for (int i=0; i < payloads.length; i++)
{
AttachmentPart attachmentPart = request.createAttachmentPart();
FileDataSource fileDS = new FileDataSource(new File(payloads[i].getFilePath()));
attachmentPart.setDataHandler(new DataHandler(fileDS));
attachmentPart.setContentType(payloads[i].getContentType());
request.addAttachmentPart(attachmentPart);
}*/
AttachmentPart attachmentPart = request.createAttachmentPart();
FileDataSource fileDS = new FileDataSource(new File("C:/purchase_order.xml"));
attachmentPart.setDataHandler(new DataHandler(fileDS));
attachmentPart.setContentType("application/xml");
request.addAttachmentPart(attachmentPart);
request.saveChanges();
/* Envoie la réponse à Hermes en retournant un id message de service Web sender*/
SOAPMessage response = soapConn.call(request,hermes2SenderWSURLStr);
SOAPBody responseBody = response.getSOAPBody();
if (!responseBody.hasFault())
{
SOAPElement messageIdElement = getFirstChild(responseBody,"message_id", nsURI);
System.out.println("Le message est envoyé!!!");
//return messageIdElement == null ? null :messageIdElement.getValue();
System.out.println(messageIdElement == null ? null : messageIdElement.getValue());
} else
{
throw new SOAPException(responseBody.getFault().getFaultString());
}
//return this.newMessageId;
//System.out.println("Le message est envoyé!!!");
//return (this.newMessageId);
}
/* Creation de la méthode createElement qui créé un Element SOAP avec namespace Prefix nsPrefix
et namespace URL nsURI et une valeur textuelle qui est le dernier element dans la méthode */
private SOAPElement createElement(String localName, String nsPrefix, String nsURI, String value)throws SOAPException
{
SOAPElement soapElement =SOAPFactory.newInstance().createElement(localName, nsPrefix, nsURI);
soapElement.addTextNode(value);
return soapElement;
}
private SOAPElement getFirstChild(SOAPElement soapElement,String childLocalName, String childNsURI) throws SOAPException {
Name childName =SOAPFactory.newInstance().createName(childLocalName, null,childNsURI);
Iterator childIter = soapElement.getChildElements(childName);
if (childIter.hasNext())
return (SOAPElement)childIter.next();
return null;
}
}
and i have thes errors:
Envoie de message au serveur Hermes2!! ...
10 mai 2009 11:29:50 com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection post
GRAVE: SAAJ0008: Bad Response; Introuvable
Exception in thread "main" com.sun.xml.messaging.saaj.SOAPExceptionImpl: java.security.PrivilegedActionException: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Bad response: (404Introuvable
at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:191)
at cliente.envoie(cliente.java:100)
at cliente.run(cliente.java:53)
at cliente.main(cliente.java:48)
Caused by: java.security.PrivilegedActionException: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Bad response: (404Introuvable
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:185)
... 3 more
Caused by: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Bad response: (404Introuvable
at
com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.post(HttpSOAPConnection.java:368)
at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection$PriviledgedPost.run(HttpSOAPConnection.java:214)
... 5 more
CAUSE:
java.security.PrivilegedActionException: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Bad response: (404Introuvable
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.call(HttpSOAPConnection.java:185)
at cliente.envoie(cliente.java:100)
at cliente.run(cliente.java:53)
at cliente.main(cliente.java:48)
Caused by: com.sun.xml.messaging.saaj.SOAPExceptionImpl: Bad response: (404Introuvable
at
com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection.post(HttpSOAPConnection.java:368)
at com.sun.xml.messaging.saaj.client.p2p.HttpSOAPConnection$PriviledgedPost.run(HttpSOAPConnection.java:214)
... 5 more
I will be so happy if you help me to solve this problem;
best regards,
hana