Как создать Java web-сервис?
Вы можете организовать web-сервис на основе технологии Java(TM) API for XML Messaging (JAXM).
Для работы сервиса необходимы библиотеки для поддержки JAXM (архив библиотек), которые надо скопировать в папку /WEB-INF/lib/ приложения.
Пример сервлета, реализующего сервис на основе JAXM, приведен ниже:
import javax.xml.soap.*;
import javax.xml.messaging.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class SOAPServiceServlet extends JAXMServlet implements ReqRespListener
{
public void init() {
try {
if(this.msgFactory == null){
this.setMessageFactory(MessageFactory.newInstance());
}
} catch (Exception e) {
log("init error",e);
}
}
public SOAPMessage onMessage(SOAPMessage message) {
try {
SOAPMessage response = msgFactory.createMessage();
SOAPEnvelope envelope = response.getSOAPPart().getEnvelope();
SOAPBody body = envelope.getBody();
body.addTextNode("Hello!");
return(response);
} catch(Exception e) {
log("Error in processing or replying to a message", e);
return(null);
}
}
}
Пример клиента использующего технологию JAXM для взаимодействия с сервисом:
import java.net.URL;
import javax.xml.soap.MessageFactory;
import javax.xml.soap.SOAPConnection;
import javax.xml.soap.SOAPConnectionFactory;
import javax.xml.soap.SOAPMessage;
public class JAXMClient {
public static void main(String[] args) throws Exception {
SOAPConnectionFactory scf = SOAPConnectionFactory.newInstance();
SOAPConnection con = scf.createConnection();
MessageFactory mf = MessageFactory.newInstance();
SOAPMessage msg = mf.createMessage();
URL urlEndpoint = new URL("http://mysite.brim.ru/TestJAXM/servlet/SOAPServiceServlet");
SOAPMessage reply = con.call(msg, urlEndpoint);
System.out.println(reply.getSOAPBody().getTextContent());
}
}
Полезные ссылки:
Java API for XML Messaging (JAXM)
SOAP Clients and Services Using SAAJ and JAXM
Любые материалы с данного сайта не могут быть использованы без разрешения владельцев ресурса.
|