Как создать веб-сервис из WSDL - PullRequest
3 голосов
/ 22 июня 2011

Я знаю, что этот вопрос задавался несколько раз, но я проверил историю / вопросы переполнения стека, и он не совсем отвечает на то, что я пытаюсь сделать. У меня есть WSDL. Я хочу создать веб-сервис для этого WSDL. Я знаю, что мне нужно что-то написать вручную, но мне нужна помощь.

У меня есть WSDL. Я сохраняю его в /home/username/java/ws/wsdl/test.wsdl. У меня также есть xsd в /home/username/java/ws/wsdl/test.xsd, который используется вышеупомянутым WSDL.

Я сгенерирую заглушки для сервера следующим образом:

[/home/username/java/ws/wsdl/] $ wsimport -p com.uptimeservice.ws -d build/classes -s src wsdl/test.wsdl

Теперь мне нужен разработчик. Я создаю такой как в /home/username/java/ws/src/WsImpl.java:

package com.uptimeservice;  

import javax.jws.WebService;  

import com.uptimeservice.ws.*;  

@WebService(name = "UptimeService",
        targetNamespace = "test",  
    serviceName = "UptimeService",  
    portName = "UptimeServiceSOAP",  
    endpointInterface = "com.uptimeservice.ws.UptimeService",
    wsdlLocation = "/home/username/java/ws/wsdl/test.wsdl")  
public class WsImpl implements UptimeService {  

@Override
public UptimeResponseType uptimeRequest(UptimeRequestType msg) {  
    UptimeResponseType resp = null;
        return resp;  
    }  
}  

Я компилирую это так: [/ home / имя пользователя / java / ws / src /] $ javac -classpath / home / имя пользователя / java / ws / build / classes / :. ком / uptimeservice / WsImpl.java

Затем, когда я пытаюсь развернуть службу, вот так: / home / имя пользователя / java / ws / src /] $ java -classpath / home / имя пользователя / java / ws / build / classes / :. ком / uptimeservice / WsImpl

Я получаю ошибку: Исключение в потоке "main" java.lang.NoSuchMethodError: main

Я предполагаю, что это что-то очень тривиальное, но я не Java-человек.

Любая помощь приветствуется.

Спасибо!

1 Ответ

0 голосов
/ 22 июня 2011

Обычно веб-сервис будет установлен на веб-сервере java, таком как Tomcat, Jboss, Jetty, Websphere, в файле war.

Вы пытаетесь запустить его вручную, как отдельное приложение,Все автономные приложения нуждаются в основной функции, называемой main, например, C или C #.

Итак, как вы собираетесь развернуть ее на веб-сервере или в качестве отдельного приложения?

Если вы делаете это как отдельное приложение, вам понадобится встроенный http-сервер, кстати.

...