OTRS:使用wsdl生成Java SEI时出错

Windows 7,Java 7 OTRS appliannce。 在此处输入图像描述

我正在尝试使用wsimport生成带有wsdl文件的Java SEI,该文件来自https://raw.githubusercontent.com/OTRS/otrs/master/development/webservices/GenericTicketConnectorSOAP.wsdl

我尝试从命令提示符(以管理员身份运行)并且它给了我错误(参见附件)并且没有生成任何内容。

我也试过使用Netbeans 8.我选择从wsdl文件创建Web服务,它抱怨无法找到服务或端口。 然后我validation了wsdl文件,它找不到这个元素的声明,xmlns:tns =“http://www.otrs.org/TicketConnector/”>

我怎么能生成SEI与Jav​​a中的OTRS交谈?

谢谢。

我在这里发布我的解决方案给任何有兴趣从Java创建OTRS票据的人。 我希望有更多关于从Java访问OTRS的文档。

  1. 无法从wsdl生成Java存根类。 我无法在任何地方找到任何解决方案,也没有从这里的任何人那里听到任何回复,也没有OTRS论坛 – forums.otterhub.org。 (Google OTRS小组不会发布我的问题。)

  2. 要访问OTRS Web服务,您必须使用SOAP。 我首先在otrs服务器上运行SOAPRequest.pl以获取一切,然后从那里开始工作。 在这之间,我还遇到了将名称空间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(); } 

我提到的链接是: