.
Java-, 1) @WebMetod 2) 3- -, Metro- - https://metro.dev.java.net/ - - Servlet 2.5 ( -), -, Jetty, , Tomcat.
http://archive.midrange.com/java400-l/200904/msg00071.html
Metro 1.4 https://metro.dev.java.net/1.4/ ( 1.5 , ), jar.
webservices-api.jar, webservices-rt.jar, webservices-extra-api.jar webservices-extra.jar( ) , "" jarfiles, tomcat - , ${TOMCAT}/lib Tomcat 6. [1]
Eclipse, , WAR:
package foo;
import java.net.InetAddress;
import java.net.UnknownHostException;
@javax.jws.WebService
public class Ping {
@javax.jws.WebMethod(action = "doPing")
public String doPing() {
System.out.println("Ping.doPing() called.");
String hostName;
try {
hostName = InetAddress.getLocalHost().getHostName();
} catch (UnknownHostException e) {
hostName = "unknown (" + e.getMessage() + ")";
}
String hostAddress;
try {
hostAddress = InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
hostAddress = "unknown (" + e.getMessage() + ")";
}
return "Reached '" + hostName + "' (" + hostAddress + ") at "
+ new java.util.Date() + " java.version="
+ System.getProperty("java.version", "(not set)");
}
}
<listener>
<listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class>
</listener>
<servlet>
<description>JAX-WS endpoint - this servlet must handle all endpoints</description>
<display-name>webservice</display-name>
<servlet-name>webservice</servlet-name>
<servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<!-- each endpoint must have a mapping to the JAX-WS endpoint servlet -->
<servlet-mapping>
<servlet-name>webservice</servlet-name>
<url-pattern>/ws</url-pattern>
</servlet-mapping>
<endpoints xmlns='http://java.sun.com/xml/ns/jax-ws/ri/runtime' version='2.0'>
<endpoint name='ping' implementation='foo.Ping'url-pattern='/ws'>
</endpoint
</endpoints>
Tomcat, , "/ws" -. http://localhost:8080/foo/ws;. , WSDL -, Ping. WSDL, - Eclipse IDE Java EE WSDCi.
, :)
[1] , .