Извините, если эти вопросы кажутся тривиальными, но я уже несколько дней пользуюсь 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.
Я мог бы использовать любые входные данные для этого ..Еще раз спасибо,