Хочу сделать веб-сервис на java (простой, типа HelloWorld), чтобы он крутился под tomcat
Описал интерфейс:
public interface IChatService {
public String postMessage(String message, String nickname);
}
Вот сам сервис:
public class ChatService implements IChatService {
public String postMessage(String message, String nickname) {
return "Hello, " + nickname + " your message:\"" + message + "\" was deliveryed";
}
}
Теперь создал сервлет, в конфиге web.xml прописал, чтобы он стартовал при запуске tomcat
public void init(ServletConfig config) throws ServletException {
try{
Wasp.init("
C:/systinet/server_java55");
Wasp.startServer("
http://localhost:6060");
ServiceEndpoint service = ServiceEndpoint.create("/ChatService/", ChatService.class);
Registry.publish(service);
System.out.println("publish");
System.out.println("Chat server is up and running.");
} catch(Exception e){
e.printStackTrace();
}
}
Потом запускаю клиент:
public class SimpleChatClient extends Object {
private static String wsdlURL;
static{
wsdlURL = System.getProperty("demo.srv.wsdl",
"
http://localhost:6060/ChatService/wsdl");
}
public static void main(String args[]) throws Exception {
ServiceClient service = ServiceClient.create(wsdlURL);
ChatService serviceProxy;
serviceProxy = (ChatService) service.createProxy(ChatService.class);
System.out.println(serviceProxy.postMessage("Hello world!!!", "username"));
}
}
И вылетает эксепшн:
org.systinet.wasp.webservice.LookupException: Error obtaining WSDL definition from
http://localhost:
6060/ChatService/wsdl
at com.systinet.wasp.webservice.ServiceClientImpl.lookup(ServiceClientImpl.java:553)
at com.systinet.wasp.webservice.ServiceClientImpl.createProxy(ServiceClientImpl.java:433)
at com.systinet.simplechat.client.SimpleChatClient.main(Unknown Source)
Caused by: WSDLException: faultCode=INVALID_WSDL: Cannot get WSDL from URL '
http://localhost:6060/Ch
atService/wsdl' (status code 404):
at com.idoox.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:273)
at com.idoox.wsdl.xml.WSDLReaderImpl.readWSDL(WSDLReaderImpl.java:375)
at com.idoox.wasp.wsdl.WSDLRepositoryImpl.getDefinition(WSDLRepositoryImpl.java:142)
at com.idoox.wasp.SOAPServiceInfoCache.getServiceInfos(SOAPServiceInfoCache.java:53)
at com.systinet.wasp.webservice.ServiceClientImpl.lookup(ServiceClientImpl.java:551)
... 2 more
Exception in thread "main"
Java Result: 1
Мне не понятно, в какой момент нужно создавать WSDL и как его вообще создавать, подскажите, если кто знает.
WSDL является необязательным элементом SOAP, но крайне желательным. Он сожаржит в себе информацию для клиента/сервера как себя вести. Какой протокол, пространство имен использовать. Т.е. по сути это некий файл который описывает методы взаимодействия клиента и сервера.
В данном случае, насколько я понимаю не будучи знатоком Java, клиенту нужен wsdl для работы иначео н работать отказывается.
Posted via RSDN NNTP Server 1.7 "Bedlam"
Здесь
Apache SOAP.
В принципе только один jar для Tomcat, но приплясов с конфигрурированием — мама не горюй ...
Здравствуйте, Protey, Вы писали:
P>Здесь Apache SOAP.
P>В принципе только один jar для Tomcat, но приплясов с конфигрурированием — мама не горюй ...
А что за приплясы? Мне для начала нужен совсем простой сервис, главное, чтоб через SOAP. И мне почему-то кажеться, что одним jar`ником тут не обойтись, во всех примерах которые я смотрел их больше. Или просто я чего-то недопонимаю