Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的程序返回XML格式的字符串值?_Java_Xml_Servlets - Fatal编程技术网

Java 为什么我的程序返回XML格式的字符串值?

Java 为什么我的程序返回XML格式的字符串值?,java,xml,servlets,Java,Xml,Servlets,我正在使用一个Web服务,它返回一个字符串值。但在我的输出中,该值是XML格式的: String point = request.getParameter("point"); try { String latLonListCityNames = proxy.latLonListCityNames(new BigInteger(point)); request.setAttribute("point", latLonListCityNames); System.out.println(

我正在使用一个Web服务,它返回一个字符串值。但在我的输出中,该值是XML格式的:

String point = request.getParameter("point");
try {
  String latLonListCityNames = proxy.latLonListCityNames(new BigInteger(point));
  request.setAttribute("point", latLonListCityNames);
  System.out.println(latLonListCityNames);
} catch (RemoteException e) {
  e.printStackTrace();
}
我预计输出为俄克拉荷马州,但实际输出为:

<?xml version='1.0' ?>
<dwml version='1.0' xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://graphical.weather.gov/xml/DWMLgen/schema/DWML.xsd">
    <latLonList>
    <cityNameList>
        Oklahoma
    </cityNameList>
</dwml>

web服务的响应通常不总是XML格式。如果需要将xml字符串响应中的数据提取到所需的格式,例如Java对象POJO,则需要一个转换器,即数据的封送和取消封送

简单解

使用JAXB

什么是JAXB

XML绑定JAXB的Java体系结构是一个软件框架,允许Java开发人员将Java类映射到XML表示。JAXB提供了两个主要特性:将Java对象封送到XML中的能力和相反的功能,即将XML解组回到Java对象中

它如何适合我的用例

为您期望的响应类型创建一个简单的响应。然后使用JAXB转换器为您转换它们

如果您希望得到cityName列表的响应,您可以创建如下POJO

CityModel.java

示例XML响应应为

<ListOfCities>
    <CityName>My City</CityName>
    <CityName>Your City</CityName>
    <CityName>So Pity</CityName>
</ListOfCities>
然后,将此xml响应字符串传递给等效类类型的JAXB绑定。i、 e.城市模型

如何做到这一切?你能分享一些好的例子吗

开始阅读

我对响应类型的名称有问题,它们没有很好的描述,如何用我想要的不同名称映射它们

您可能需要查看下面的链接,它们的关键部分是研究有关@XmlRootElement、@xmltAttribute、@XmlElement等自定义配置注释的更多信息

没有什么更重要的链接可以在以后提供帮助


是您的代理。latLonListCityNames是web服务调用吗?请尝试将Accept更改为纯文本/纯文本,并检查问题是否在代理下。latLonListCityNames@miiiii是的
<ListOfCities>
    <CityName>My City</CityName>
    <CityName>Your City</CityName>
    <CityName>So Pity</CityName>
</ListOfCities>