Java 为什么我的程序返回XML格式的字符串值?
我正在使用一个Web服务,它返回一个字符串值。但在我的输出中,该值是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(
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>