2015-02-11 3 views
0

Windows 7, Java 7 OTRS appliannce. enter image description hereOTRS: ошибка генерации Java SEI с wsdl

Я пытаюсь использовать wsimport для создания Java SEI с файлом WSDL из https://raw.githubusercontent.com/OTRS/otrs/master/development/webservices/GenericTicketConnectorSOAP.wsdl

Я попытался из командной строки (запустить от имени администратора), и он дал мне ошибки (см приложение) и ничего не создает.

Я также пробовал использовать Netbeans 8. Я выбираю создание веб-службы из wsdl-файла, и он жалуется, что не может найти службу и порт. Затем я подтвердил файл wsdl, он не может найти объявление этого элемента, xmlns: tns = "http://www.otrs.org/TicketConnector/">

Как я могу генерировать SEI для общения с OTRS в Ява?

спасибо.

+0

Я нашел другое решение для генерации Java классов из OTRS WSDL [здесь] [1] [1]: http://stackoverflow.com/questions/28319442/otrs -genericticketconnectorsoap-wsdl-cant-create-port-and-service/29205592 # 29205592 – luprogrammer

+0

Спасибо. Я это проверю. – wolf97084

ответ

1

Я размещаю свое решение здесь для всех, кто заинтересован в создании билетов OTRS с Java. Хотелось бы получить больше документации о доступе к OTRS с Java.

  1. Создание классов Java-заглушек из wsdl невозможно. Я не могу найти нигде нигде и не слышу что-либо от кого-либо, кроме форумов OTRS - forums.otterhub.org. (Группа Google OTRS не будет отправлять мой вопрос.)

  2. Для доступа к веб-сервису OTRS вам необходимо использовать SOAP. Я сначала запускаю SOAPRequest.pl на сервере otrs, чтобы все выяснить, затем отработал оттуда. Между тем, я также страдал от связывания пространства имен uri с проблемой локального имени.

Мои рабочие коды здесь,

try { 
    SOAPConnectionFactory scf = SOAPConnectionFactory.newInstance(); 
    SOAPConnection conn = scf.createConnection(); 
    MessageFactory mf = MessageFactory.newInstance(); 
    SOAPMessage msg = mf.createMessage(); 
    SOAPPart sp = msg.getSOAPPart(); 

    SOAPEnvelope env = sp.getEnvelope(); 
    env.addNamespaceDeclaration("tns", "http://www.otrs.org/TicketConnector/"); 
    SOAPBody body = env.getBody(); 
    SOAPBodyElement dispatch = body.addBodyElement(new QName("http://www.otrs.org/TicketConnector/", "TicketCreate", "tns")); 
    dispatch.addChildElement(new QName("http://www.otrs.org/TicketConnector/", "UserLogin", "tns")).addTextNode("some user login"); 
    dispatch.addChildElement(new QName("http://www.otrs.org/TicketConnector/", "Password", "tns")).addTextNode("some user password"); 

    SOAPElement tkt = dispatch.addChildElement(new QName("http://www.otrs.org/TicketConnector/", "Ticket", "tns")); 
    tkt.addChildElement(new QName("http://www.otrs.org/TicketConnector/", "Title", "tns")).addTextNode("some title"); 
    tkt.addChildElement(new QName("http://www.otrs.org/TicketConnector/", "Queue", "tns")).addTextNode("one of your queue names"); 
    tkt.addChildElement(new QName("http://www.otrs.org/TicketConnector/", "Type", "tns")).addTextNode("one of your types"); 
    tkt.addChildElement(new QName("http://www.otrs.org/TicketConnector/", "CustomerUser", "tns")).addTextNode("some email address not customer id/name/username. Thought this could be my sys config"); 
    tkt.addChildElement(new QName("http://www.otrs.org/TicketConnector/", "State", "tns")).addTextNode("one of your states"); 
    tkt.addChildElement(new QName("http://www.otrs.org/TicketConnector/", "Priority", "tns")).addTextNode("one of your priorities"); 

    SOAPElement article = dispatch.addChildElement(new QName("http://www.otrs.org/TicketConnector/", "Article", "tns")); 
    article.addChildElement(new QName("http://www.otrs.org/TicketConnector/", "Subject", "tns")).addTextNode("some subject"); 
    article.addChildElement(new QName("http://www.otrs.org/TicketConnector/", "Body", "tns")).addTextNode("some body"); 
    article.addChildElement(new QName("http://www.otrs.org/TicketConnector/", "ContentType", "tns")).addTextNode("text/plain; charset=utf8"); 

    SOAPElement dynamicField = dispatch.addChildElement(new QName("http://www.otrs.org/TicketConnector/", "DynamicField", "tns")); 
    dynamicField.addChildElement(new QName("http://www.otrs.org/TicketConnector/", "Name", "tns")).addTextNode("one of your dynamic field"); 
    dynamicField.addChildElement(new QName("http://www.otrs.org/TicketConnector/", "Value", "tns")).addTextNode("your dynamic field value"); 

    dispatch.addChildElement(tkt); 
    dispatch.addChildElement(article); 
    dispatch.addChildElement(dynamicField); 

    /* Print the request message */ 
    System.out.print("Request SOAP Message:"); 
    msg.writeTo(System.out); 
    System.out.println(); 
    URL url = new URL("http://your otrs ip address/otrs/nph-genericinterface.pl/Webservice/GenericTicketConnectorSOAP"); 
    SOAPMessage resp = conn.call(msg, url); 
    resp.writeTo(System.out); 
    System.out.println(); 
    } catch (SOAPException | UnsupportedOperationException | IOException e) { 
     e.printStackTrace(); 
    } 

ссылки I, упомянутые являются:

Смежные вопросы