Estoy tratando de crear un servicio web simple en eclipse. Primero he creado un vacío de proyecto java y añadido los tres archivos siguientes en la carpeta src

  1. Greeting.java
package com.alfaisaliah;

import javax.jws.WebService;
import javax.jws.WebMethod;

@WebService
public interface Greeting {
    @WebMethod
    String sayHello(String name);
}
  1. GreetingImp.java
package com.alfaisaliah;

import javax.jws.WebService;

@WebService(endpointInterface="com.alfaisaliah.Greeting")
public class GreetingImp implements Greeting {

    @Override
    public String sayHello(String name) {
        return "Hello " + name;
    }
}
  1. WSPublisher
package com.alfaisaliah;

import javax.xml.ws.Endpoint;

public class WSPublisher {
    public static void main(String[] args){
        Endpoint.publish("http://localhost:8081/WS/Greeting", new GreetingImp());
    }
}

El tutorial que estoy siguiendo no especificar cualquier servidor para ejecutar el servicio web! Me pregunto si debo especificar cualquier servidor. Ya tengo Tomcat v5.5 pero no estoy usando en este ejemplo. Siempre que puedo ejecutar este proyecto como un proyecto de java puedo obtener algún tipo de error. Puede alguien por favor me ayude a identificar dónde está mi problema es tratar de ejecutar el servicio web. Aquí está la salida de el eclipse de la consola

Feb 26, 2012 12:01:00 PM com.sun.xml.internal.ws.model.RuntimeModeler getRequestWrapperClass
INFO: Dynamically creating request wrapper Class com.alfaisaliah.jaxws.SayHello

Feb 26, 2012 12:01:00 PM com.sun.xml.internal.ws.model.RuntimeModeler getResponseWrapperClass
INFO: Dynamically creating response wrapper bean Class com.alfaisaliah.jaxws.SayHelloResponse

También cuando me vuelva a ejecutar el proyecto dice que la dirección ya está en uso

Feb 26, 2012 12:01:00 PM com.sun.xml.internal.ws.model.RuntimeModeler getRequestWrapperClass
INFO: Dynamically creating request wrapper Class com.alfaisaliah.jaxws.SayHello

Feb 26, 2012 12:01:00 PM com.sun.xml.internal.ws.model.RuntimeModeler getResponseWrapperClass
INFO: Dynamically creating response wrapper bean Class com.alfaisaliah.jaxws.SayHelloResponse
Exception in thread "main" com.sun.xml.internal.ws.server.ServerRtException: Server Runtime Error: java.net.BindException: Address already in use

Agradecería su ayuda chicos 🙂

Los mensajes relativos a la creación de contenedor de beans es ACEPTAR. Es básicamente una parte de JAX-WS capacidad para generar WSDL sobre la marcha.

OriginalEl autor moeabdol | 2012-02-26

2 Comentarios

  1. 4

    El tutorial que estoy siguiendo no especificar cualquier servidor de la web
    servicio! Me pregunto si debo especificar cualquier servidor.

    Usted no necesita un servidor con este código.

    Su main en:

    Endpoint.publish("http://localhost:8081/WS/Greeting", new GreetingImp());  

    se inicia un poquito de servidor http debajo de la campana (disponible después de JKD 1.6) y despliega su web de servicio de manejo de todas las llamadas entrantes/salientes de tráfico.

    El problema aquí es que se ha saltado un paso:

    Tienes que generar la necesaria artefactos de uso de la wsgen herramienta (disponible en java).

    Echa un vistazo aquí: JAX WS tutorial para

    wsgen -d build -s build -classpath build
    helloservice.endpoint.Hello


    y leer acerca de wsgen.

    Para ser honesto, no recuerdo cómo hacerlo a través de Eclipse (en realidad no estoy seguro de si esto puede funcionar en Eclipse automáticamente sin que necesidad de ejecutar wsgen a ti mismo), pero se puede ejecutar de forma manual y solo copie los artefactos generados en el proyecto.

    Como para el

    Server Error de tiempo de ejecución: java.net.BindException: Dirección ya está en uso

    Esta es auto-explicativo: Sólo tiene que utilizar otro puerto. 8081 ya está en uso.

    Gracias por aclarar esto. Ahora sé que el problema no está en el código o en el servidor. Miré en la wsgen herramienta de comandos y comprendo que la mayoría de las opciones y los parámetros; sin embargo, cuando la unidad de cd en la carpeta del proyecto y wsgen dice SEI falta!!! No estoy seguro de si debo cd en la carpeta src o la carpeta bin del proyecto, a continuación, aplicar wsgen? la mayoría de los tutoriales que hay no se especifica que, se acaba de ir con el comando y las opciones. Gracias
    OK…me enteré de cómo utilizar el wsgen para generar los artefactos y wsdl…también he cambiado el puerto 8088. Donde debo poner estos archivos en el proyecto de la jerarquía?
    Bajo su paquete correspondiente

    OriginalEl autor Cratylus

Dejar respuesta

Please enter your comment!
Please enter your name here