WSDL первый веб-сервис с Maven, CXF под JBoss - PullRequest
2 голосов
/ 09 сентября 2011

Извините, если эти вопросы кажутся тривиальными, но я уже несколько дней пользуюсь Google, но безуспешно.

Я новичок в WebServices, и мне поручено разработать серверную часть для веб-службы на Java.Мне дали WSDL и с помощью maven и cxf я создал проект с двумя модулями.Основной модуль, в котором я написал бизнес-код и намереваюсь выполнить часть сервера веб-службы, а также модуль wsdl, в котором классы генерируются из WSDL.

Теперь, после написания бизнес-кода и его тестирования, я должен развернуть сервер веб-службы под JBoss для дальнейшего тестирования с soapUI.Я никогда не делал этого, и попытка найти учебник в Google привела меня в замешательство, так как я не могу найти хороший пример / учебник - большинство из них сделаны с использованием различных технологий.

Я думаю, что мне нужно настроить web.xml и cxf.xml и создать конечную точку, указывающую на мою реализацию сервиса - класс, который реализует интерфейс сервиса, созданный из WSDL;но я понятия не имею, как это сделать.

Я также заметил, что WSDL создал класс Service_service, который расширяет Service.Класс выглядит следующим образом.(некоторые вещи отредактированы для конфиденциальности)

import javax.xml.ws.WebServiceClient;
import javax.xml.ws.WebServiceFeature;
import javax.xml.ws.Service;


@WebServiceClient(name = "Service", 
              wsdlLocation = "file:/C:/dev/ws/ems/APP/wsdl/src/main/resources/wsdl/Service.wsdl",
              targetNamespace = "http://smth.com/smth/smth/smth") 
public class Service_Service extends Service {

public final static URL WSDL_LOCATION;

public final static QName SERVICE = new QName("http://smth.com/smth/smth/smth", "Service");
public final static QName ServicePort = new QName("http://smth.com/smth/smth/smth", "ServicePort");
static {
    URL url = null;
    try {
        url = new URL("file:/C:/dev/ws/ems/Service/wsdl/src/main/resources/wsdl/Service.wsdl");
    } catch (MalformedURLException e) {
        System.err.println("Can not initialize the default wsdl from file:/C:/dev/ws/ems/Service/wsdl/src/main/resources/wsdl/Service.wsdl");
        // e.printStackTrace();
    }
    WSDL_LOCATION = url;
}

public Service_Service(URL wsdlLocation) {
    super(wsdlLocation, SERVICE);
}

public Service_Service(URL wsdlLocation, QName serviceName) {
    super(wsdlLocation, serviceName);
}

public Service_Service() {
    super(WSDL_LOCATION, SERVICE);
}


/**
 * 
 * @return
 *     returns Service
 */
@WebEndpoint(name = "ServicePort")
public Service getServicePort() {
    return super.getPort(ServicePort, Service.class);
}

/**
 * 
 * @param features
 *     A list of {@link javax.xml.ws.WebServiceFeature} to configure on the proxy.  Supported features not in the <code>features</code> parameter will have their default values.
 * @return
 *     returns Service
 */
@WebEndpoint(name = "ServicePort")
public Service getServicePort(WebServiceFeature... features) {
    return super.getPort(ServicePort, Service.class, features);
}}

Для чего мне это использовать?Что это делает?

Может кто-нибудь помочь мне с учебником или подобным примером?На данный момент я не знаю, как действовать ...

Спасибо,

Позже. РЕДАКТИРОВАТЬ: я только что заметил, что Service_service используется для клиента, поэтому я думаю, что я не будунужно, так как я не разрабатываю клиента.

Служба, сгенерированная WSDL, содержит

@WebService(targetNamespace = "http://smth.com/smth/smth/smth", name = "Service")

Я предполагаю, что мне нужно использовать это в моем файле web.xml.

Я мог бы использовать любые входные данные для этого ..Еще раз спасибо,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...