Веб-сервисы, использующие Java на NetBeans - PullRequest
0 голосов
/ 23 ноября 2011

Является ли этот фрагмент кода совершенно неправильным?Я делаю web service для универа.Можно ли подключиться к базе данных, используя метод web service.Код соединения работает, когда в стандартном проекте SE, но когда в веб-сервисе NetBeans не позволяет мне развернуть проект, он говорит, что не может создать WSDL.

/ * * Toизмените этот шаблон, выберите Инструменты |Шаблоны * и откройте шаблон в редакторе.* / package org.me.calculator;

 import com.mysql.jdbc.Statement;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.sql.SQLException;
 import javax.jws.WebService;
 import javax.jws.WebMethod;
 import javax.jws.WebParam;
 import javax.ejb.Stateless;

 /**
 *
 * @author ericman
  */
  @WebService(serviceName = "CalculatorWS")
  @ Stateless()
  public class CalculatorWS {


/**
 * Web service operation
 */
@WebMethod(operationName = "UppDateBook")
public String UppDateBook(@WebParam(name = "name") String name) throws SQLException {
    //TODO write your implementation code here:
    Connection con = DriverManager.getConnection("jdbc:mysql://localhost/bookcatalog","ericman","ericman");
    Statement stmt = (Statement) con.createStatement();
    String insert = "INSERT INTO `bookcatalog`.`books` (`name`, `isbn`, `price`, `publisher`, `img`) VALUES ('BookOne', '12456789', '45', 'publisher', 'httpfile');";
    int numUpdate = stmt.executeUpdate(insert);
    stmt.close();
    return null;
}

}

Сообщение об ошибке

SEVERE: Невозможно найти adpater для конечной точки ПРЕДУПРЕЖДЕНИЕ: MEX0008: Не удалосьсинтаксический анализ метаданных, полученных с сервера на http://localhost:8080/WebSercviceOne/WebSercviceOne?WSDL/mex с использованием протокола SOAP_1_1.Продолжающиеся попытки.ИНФОРМАЦИЯ: [ОШИБКА] Сервер возвратил код ответа HTTP: 405 для URL: http://localhost:8080/WebSercviceOne/WebSercviceOne?WSDL Не удалось прочитать документ WSDL: http://localhost:8080/WebSercviceOne/WebSercviceOne?WSDL,, поскольку 1) не удалось найти документ;/ 2) документ не может быть прочитан;3) корневого элемента документа нет.ИНФОРМАЦИЯ: [ОШИБКА] failed.noservice = Не удалось найти wsdl: service в предоставленных WSDL (s): необходимо предоставить как минимум один WSDL с хотя бы одним определением службы.ИНФОРМАЦИЯ: Не удалось проанализировать WSDL.ИНФОРМАЦИЯ: Вызов wsimport с http://localhost:8080/WebSercviceOne/WebSercviceOne?WSDL SEVERE: сбой wsimport ИНФОРМАЦИЯ: Корневое имя мониторинга Metro успешно установлено в: amx: pp = / mon / server-mon [server], type = WSEndpoint, name = WebSercviceOne-WebSercviceOnePort ПРЕДУПРЕЖДЕНИЕ: контейнерorg.glassfish.webservices.JAXWSContainer@7339ea2c не поддерживает класс com.sun.xml.ws.api.server.Module ИНФОРМАЦИЯ: WS00019: конечная точка EJB развернула ServiceOne для прослушивания по адресу http://ericman -PC: 8080 /WebSercviceOne / WebSercviceOne ИНФОРМАЦИЯ: WEB0671: загрузка приложения [ServiceOne] в [/ ServiceOne] ИНФОРМАЦИЯ: ServiceOne успешно развернута за 511 миллисекунд.ИНФОРМАЦИЯ: разбор WSDL ...

1 Ответ

0 голосов
/ 12 августа 2014

Вы не можете создать исключение таким образом, вам нужно создать свои собственные исключения, относящиеся к тезисам: 1) Ваше пользовательское исключение - это класс, который расширяет Exception. 2) добавьте тег @WebFault (name = "имя исключения") в свой класс исключений 3) Создайте bean-компонент, который сохраняет сообщение об исключении: у этого bean-компонента есть аргумент String со всеми конструкторами и геттером. 4) Ваш класс исключений должен иметь атрибут этого бина. 5) должно иметь два конструктора, один с сообщением и экземпляром компонента, другой с сообщением, экземпляром компонента и объектом Throwable, представляющим проблему.

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