gpt4 book ai didi

java - 如何在Web服务中使用HashMap作为参数

转载 作者:行者123 更新时间:2023-12-02 00:09:00 25 4
gpt4 key购买 nike

我正在尝试创建一个动态 Web 服务,其中我将期待一个 Java HashMap 或一个数组列表作为参数。

我在类代码中使用以下代码:

package demo;

import java.util.ArrayList;

import javax.jws.WebService;

@WebService
public class HashMapTest {
public HashMapTest() {
super();
}

public int getResponse(ArrayList<String> hm) {
return hm.size();
}
}

我正在使用 IDE:Oracle Jdeveloper 11g。当我同样使用向导时,输出 WSDL 如下所示:

<?xml version="1.0" encoding="UTF-8" ?>
<wsdl:definitions
name="HashMapTestService"
targetNamespace="http://demo/"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://demo/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
>
<wsdl:types>
</wsdl:types>
<wsdl:portType name="HashMapTest">
</wsdl:portType>
<wsdl:binding name="HashMapTestSoapHttp" type="tns:HashMapTest">
<soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
</wsdl:binding>
<wsdl:service name="HashMapTestService">
<wsdl:port name="HashMapTestPort" binding="tns:HashMapTestSoapHttp">
<soap:address location="http://localhost:7101/DemoServer-Demo-context-root/HashMapTestPort"/>
</wsdl:port>
</wsdl:service>
</wsdl:definitions>

很容易看出,WSDL 已损坏且无法使用。

这只是 Jdeveloper 中的一个错误还是我们可以不使用 Web 服务中的 Collections API 作为参数?

请帮忙

最佳答案

这是由 JAXB 中的错误引起的。使用以下代码:

public class DTOObject
{
HashMap hm = new HashMap();

public void setHm(HashMap hm) {
this.hm = hm;
}

public HashMap getHm() {
return hm;
}

public int size() {
return hm.size();
}
}

public class HashMapTest {
public HashMapTest() {
super();
}

public int getResponse(Wrapped hm) {

System.out.println(hm);
return hm.size();
}


}

它将解决问题并正确创建 wsdl。

关于java - 如何在Web服务中使用HashMap作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13250222/

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