Java delphiweb服务中的复杂类型

Java delphiweb服务中的复杂类型,java,web-services,delphi,soap,complextype,Java,Web Services,Delphi,Soap,Complextype,如何使delphiwebservice中的复杂类型,特别是soapenc:Array,与使用它的类型定义在同一名称空间中可用。当前,如果我尝试从Delphi应用程序生成的wsdl创建一个新的Java Web服务,Java会出现以下错误: Error resolving component 'soapenc:Array'. It was detected that 'soapenc:Array' is in namespace 'http://schemas.xmlsoap.org/soap/en

如何使delphiwebservice中的复杂类型,特别是soapenc:Array,与使用它的类型定义在同一名称空间中可用。当前,如果我尝试从Delphi应用程序生成的wsdl创建一个新的Java Web服务,Java会出现以下错误:

Error resolving component 'soapenc:Array'. It was detected that 'soapenc:Array' is in namespace 'http://schemas.xmlsoap.org/soap/encoding/', but components from this namespace are not referenceable from schema document...........
如果我分析wsdl,我的所有方法和类型都使用namepsace'targetNamespace=“urn:WebserviceIntf”’,但使用soapenc:Array的类型定义如下:

<xs:complexType name="ArrayOfClientDetailAcc">
<xs:complexContent>
<xs:restriction base="soapenc:Array">
<xs:sequence/>
<xs:attribute xmlns:n1="http://schemas.xmlsoap.org/wsdl/" ref="soapenc:arrayType" n1:arrayType="ns2:TClientDetailAccArray[]"/>
</xs:restriction>
</xs:complexContent>
</xs:complexType>

抱歉-根据您的评论(“在Netbeans中,使用“来自WSDL的新web服务”),很明显您不希望创建Java web服务客户端,而是希望创建web服务服务器。所以我的回答当然没有帮助


另见:

要解决此问题,一种解决方案是:

  • 使用C#(WCF)或Java(JAX-WS)实现新的web服务服务器
然后

  • 在现有的Delphi应用程序和web服务之间构建一个简单的消息传递层

  • 使用免费的Pascal

但是,这两种方法都会使您的新服务与旧的Delphi客户端不兼容。

在maven
axistools:1.4中也是如此。这个异常是由一个旧的
wsdl4j
引发的,您使用的是哪一个Java SOAP库?我正在使用JAX-in Netbeans,使用“来自WSDL的新web服务”选项作为建议,但不幸的是,没有一个是可行的选项。我们不想增加额外的复杂性,也不想完全放弃使用IIS,这就是我们转向Java和Glassfish的原因。我们还需要保持它完全向后兼容,这样我们就不会中断任何客户端(其中一些客户端正在使用Delphi客户端)@JBehrendt对不起-根据您的评论(“在Netbeans中,使用“来自WSDL的新web服务”),很明显,您不想创建Java web服务客户端,而是要创建web服务服务器。所以我的回答当然没有帮助。
C:\axis>java org.apache.axis.wsdl.WSDL2Java http://mywebservice?wsdl
- Unable to find required classes (javax.activation.DataHandler and javax.mail.i
nternet.MimeMultipart). Attachment support is disabled.
WSDLException (at /definitions/binding/operation[1]/input): faultCode=INVALID_WS
DL: Element '{http://schemas.xmlsoap.org/wsdl/}input' contained unexpected attri
butes: 'message':
        at com.ibm.wsdl.util.xml.DOMUtils.throwWSDLException(Unknown Source)
        at com.ibm.wsdl.xml.WSDLReaderImpl.parseBindingInput(Unknown Source)
        at com.ibm.wsdl.xml.WSDLReaderImpl.parseBindingOperation(Unknown Source)

        at com.ibm.wsdl.xml.WSDLReaderImpl.parseBinding(Unknown Source)
        at com.ibm.wsdl.xml.WSDLReaderImpl.parseDefinitions(Unknown Source)
        at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
        at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
        at com.ibm.wsdl.xml.WSDLReaderImpl.readWSDL(Unknown Source)
        at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.jav
a:516)
        at org.apache.axis.wsdl.symbolTable.SymbolTable.populate(SymbolTable.jav
a:495)
        at org.apache.axis.wsdl.gen.Parser$WSDLRunnable.run(Parser.java:361)
        at java.lang.Thread.run(Unknown Source)