Клиент веб-службы JBOSS не работает (ошибка средства моделирования во время выполнения: класс Wrapper не найден) - PullRequest
1 голос
/ 25 июня 2009

У меня есть простой hello-world EJB3, успешно развернутый как веб-сервис. Я могу проверить это с помощью URL: http://localhost:8080/jbossws/services

Ниже приведен клиент, который работает на Glassfish, но не работает на JBOSS

package com.hardik.mejb;

import java.net.MalformedURLException;
import java.net.URL;
import javax.xml.namespace.QName;
import javax.xml.ws.Service;

public class JAXWSClient {

    private static String host = "localhost";
    private static String portType = "HelloBean";
    private static String serviceName = "Greeter";
    private static String serviceName_jboss = "hello-ws-hello-ws";

    // works for glassfish
    // private static String serviceEndpointAddress = "http://"+ host+ ":8080/" + serviceName;

    // should work for jboss
    private static String serviceEndpointAddress = "http://"+ host+ ":8080/" + serviceName_jboss;

    private static String namespace = "http://mejb.hardik.com/";

    public static void main(String[] args) {

        URL wsdlLocation = null;
        try {
            String urlstr = serviceEndpointAddress + "/" + portType + "?WSDL";
            System.out.println(urlstr);
            wsdlLocation = new URL(urlstr);
        } catch (MalformedURLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        QName serviceNameQ = new QName(namespace,serviceName);      
        // dynamic service usage
        Service service = Service.create(wsdlLocation, serviceNameQ);
        Hello firstGreeterPort =  service.getPort(Hello.class);

        // Object beans[] = service.getPorts();
        System.out.println("1: "+ firstGreeterPort.hello());        
    }
}

Вот как я запускаю клиент и получаю ошибку:

wsrunclient.sh  -cp "lib/*:dist/hello-client.jar:jboss-generated/*"  com.hardik.mejb.JAXWSClient
http://localhost:8080/hello-ws-hello-ws/HelloBean?WSDL
Exception in thread "main" com.sun.xml.internal.ws.model.RuntimeModelerException: runtime modeler error: Wrapper class com.hardik.mejb.jaxws.Hello is not found. Have you run APT to generate them?
        at com.sun.xml.internal.ws.model.RuntimeModeler.getClass(RuntimeModeler.java:256)
        at com.sun.xml.internal.ws.model.RuntimeModeler.processDocWrappedMethod(RuntimeModeler.java:567)
        at com.sun.xml.internal.ws.model.RuntimeModeler.processMethod(RuntimeModeler.java:514)
        at com.sun.xml.internal.ws.model.RuntimeModeler.processClass(RuntimeModeler.java:341)
        at com.sun.xml.internal.ws.model.RuntimeModeler.buildRuntimeModel(RuntimeModeler.java:227)
        at com.sun.xml.internal.ws.client.WSServiceDelegate.addSEI(WSServiceDelegate.java:588)
        at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:291)
        at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:274)
        at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:302)
        at com.sun.xml.internal.ws.client.WSServiceDelegate.getPort(WSServiceDelegate.java:306)
        at javax.xml.ws.Service.getPort(Service.java:161)
        at com.hardik.mejb.JAXWSClient.main(Unknown Source)

Нужно ли что-то генерировать? Я скучаю по некоторым файлам jar?

...