当我试图从web服务获取对象时,会出现以下异常:
javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"html"). Expected elements are <{}user>
User类使用@XMLRootElement
进行注释,通过浏览器访问web服务将显示User的xml表示形式
客户端代码(我使用mediatype.text_html
是因为mediatype.application_xml
导致RestClientException
):
java prettyprint-override">RestTemplate restTemplate = new RestTemplate();
List<HttpMessageConverter<?>> messageConverters = new ArrayList<HttpMessageConverter<?>>();
Jaxb2RootElementHttpMessageConverter jaxbMessageConverter = new Jaxb2RootElementHttpMessageConverter();
List<MediaType> mediaTypes = new ArrayList<MediaType>();
mediaTypes.add(MediaType.TEXT_HTML);
jaxbMessageConverter.setSupportedMediaTypes(mediaTypes);
messageConverters.add(jaxbMessageConverter);
restTemplate.setMessageConverters(messageConverters);
User x = restTemplate.getForObject("http://localhost:8080/Online_Shopping/dispatcher/rest/hello",User.class);
Web服务代码:
@Controller
@RequestMapping(value = "/rest")
public class RESTController {
@RequestMapping(value = "/hello",
method = RequestMethod.GET,
produces = MediaType.APPLICATION_XML_VALUE)
public @ResponseBody User getUser() {
return new User("paymon","123",true);
}
}
由于安全拦截器,我没有访问web服务的权限。
注释掉拦截器后,我的web服务可以正常工作。唯一的问题是我想知道如何保护我的web服务通过java代码访问它。
UnMarshalException:意外元素(URI:“”,本地:“SystemUnit”)。需要的元素为<{http://xyz.abc.com/consumer/systems}SystemUnit>
我在将XML响应从服务转换为POJO时遇到一个异常。XML如下所示: 我是这样用的: 下面是我的文件的详细信息 包-info.java ItemLink.java ItemLinks.java
在这里,我将从XML创建java对象:
有几个关于这个问题的帮助主题,但我还没有找到一个解决我的问题的解决方案。我很欣赏在解决这个问题上的指导。 例外情况
和运行解析的主类: 我得到的错误是: UnMarshalException:意外元素(uri:“http://www.namespace.com/rts”,本地:“container”)。需要的元素为<{}Container>,<{}Requisite>(位于com.sun.xml.internal.bind.v2.runtime.unmarshaller.unmarshallingcontext