gpt4 book ai didi

java - 使用 Websphere 6.1 生成 WSDL 未正确生成序列参数

转载 作者:行者123 更新时间:2023-12-01 05:42:23 25 4
gpt4 key购买 nike

我正在尝试使用 Websphere 6.1 Java2Wsdl ant 任务从 Endpoint 类生成 WSDL 文件

端点编码为

class MySvcEndpoint implements MySvc_SEI {
public SomeOtherComplexType[] myCall(String[] argStrings)
throws javax.xml.soap.SOAPException
{
.
.
}
}

界面是:

public interface MySvc_SEI extends java.rmi.Remote {
public SomeOtherComplexType[] myCall(String[] argStrings)
throws javax.xml.soap.SOAPException;
}

生成的 WSDL 包含以下条目:

<element name="myCall">
<complexType>
<sequence/>
</complexType>
</element>
<element name="myCallResponse">
<complexType>
<sequence/>
</complexType>
</element>

正如您所看到的,“argStrings”参数已经消失,尽管它似乎认识到某些东西应该在那里。另外,返回类型似乎也消失了。

无论如何,当我基于 WSDL 生成 stub 时,生成的接口(interface)是:

public interface MySvc {
public void myCall() throws java.rmi.RemoteException;
}

以前有人遇到过这个问题吗?如果有的话是如何解决的?

谢谢

[编辑] 好的,似乎是当有一个数组作为输入参数时。我尝试过以下方法:

public int m1(String s1) throws SOAPException {
return 0;
}

public int[] m2(String s1) throws SOAPException {
int[] a = { 0 };
return a;
}

public int m3(String[] sArr) throws SOAPException {
return 0;
}

public int[] m4(String[] sArr) throws SOAPException {
int[] a = { 0 };
return a;
}

并获得以下 WSDL 输出:

<element name="m1">
<complexType>
<sequence>
<element name="s1" nillable="true" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="m1Response">
<complexType>
<sequence>
<element name="m1Return" type="xsd:int"/>
</sequence>
</complexType>
</element>
<element name="m2">
<complexType>
<sequence>
<element name="s1" nillable="true" type="xsd:string"/>
</sequence>
</complexType>
</element>
<element name="m2Response">
<complexType>
<sequence>
<element name="m2Return" nillable="true" type="impl:ArrayOf_1368777266_int"/>
</sequence>
</complexType>
</element>
<element name="m3">
<complexType>
<sequence/>
</complexType>
</element>
<element name="m3Response">
<complexType>
<sequence/>
</complexType>
</element>
<element name="m4">
<complexType>
<sequence/>
</complexType>
</element>
<element name="m4Response">
<complexType>
<sequence/>
</complexType>
</element>

如您所见,带有简单参数的方法生成正常,但带有数组参数的方法则被搞砸了。

最佳答案

事实证明,这是由于 WebSphere Application Server 的补丁版本造成的。经调查,安装的WebSphere 是6.1.0.0。升级到补丁级别 23 或更高版本后,此问题已得到修复。

确保您使用的是最新的补丁版本,这就是我能说的!

关于java - 使用 Websphere 6.1 生成 WSDL 未正确生成序列参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6775127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com