我使用Spring Boot调用Web服务。
我的配置类如下:
@Configuration
public class ClientAppConfig {
@Bean
public Jaxb2Marshaller marshaller() {
Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
marshaller.setPackagesToScan("com.client.stub");
return marshaller;
}
@Bean
public ARTestClient arTestClient(Jaxb2Marshaller marshaller) {
ARTestClient client = new ARTestClient();
client.setDefaultUri("uri");
client.setMarshaller(marshaller);
client.setUnmarshaller(marshaller);
return client;
}
我打电话给服务部如下:
OutputMessageType response = (OutputMessageType) getWebServiceTemplate().marshalSendAndReceive(
inputMessageType, new SoapActionCallback("http://Serviceuri"));
我发现以下错误:
[2016-03-18 14:45:43.697] boot - 10272 ERROR [http-nio-8080-exec-1] --- [dispatcherServlet]: Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
[Request processing failed; nested exception is java.lang.ClassCastException: javax.xml.bind.JAXBElement
cannot be cast to com.wfs.client.stub.ar.OutputMessageType] with root cause
如何解组webservice的输出?????如何设置响应的解组器??
JAXBElement<OutputMessageType> response = (JAXBElement<OutputMessageType>)
getWebServiceTemplate().marshalSendAndReceive(
inputMessageType, new SoapActionCallback("http://Serviceuri"));
// Then just call
System.out.println(response.getValue());
对我的案子很有效
如果它今天仍然相关,有一种方法可以在配置文件中解决这个问题。而不是在以下行中使用. setPackagesToScan:marshaller.setPackagesToScan("com.client.stub")
考虑使用. setClassesToBeBound
但是,您将需要引用包下的每个类(将用于编组和解组):
marshaller.setClassesToBeBound(new Class[] {
com.client.stub.Foo.class,
com.client.stub.Bar.class,
com.client.stub.Baz.class
});
没有必要向JAXBElement施压。
有趣的是,我也有同样的问题,我是这么做的:
把你的反应投射到
JAXBElement<OutputMessageType>
所以结果会是
JAXBElement<OutputMessageType> response = (JAXBElement<OutputMessageType>) getWebServiceTemplate().marshalSendAndReceive(
inputMessageType, new SoapActionCallback("http://Serviceuri"));
// Then just call
System.out.println(response.getValue());
我的配置和你差不多。我还在想为什么会有ClassCastException。至少我们有一个解决办法。。。
我在我的xhtml页面中显示一个带有链接的项目列表。当我从该链接中单击“返回上一页”按钮时,我基本上会重置bean中的标志,以向xhtml指示要显示的页面,并从数据库中重新加载链接列表。 当我在这个新页面中单击同一个链接(或任何其他链接)时,我会得到这个错误: 如果我刷新页面并重试,则不会出现问题。有人知道我做错了什么吗? ----编辑---- 以防其他使用liferay的人有这个问题,我只是在我
MainActivity.java 对不起,我的英语很差。
问题内容: 我有。我想使用获得最大结果。这是我的代码: 这是我的: 现在我得到了。怎么了? 问题答案: 您的错误可能在以下行中: 其中query.list()返回BigInteger列表而不是Long列表。尝试将其更改为。
我不是一个设计师,但当我得到这个项目,我不能打开特别的一些屏幕,我认为他们是屏幕,我们只重用一些布局已经创建。不管怎么说谁能帮帮我吗?@override public void onBindViewHolder(@nonnull final ProductsAdapter.ViewHolder holder,final int position){String imageUrl=ProductsL
我有一个用java实现的Web服务项目,它还包含jsp页面。我在我的机器上的jetty 8.1.5上部署它,它可以正常工作。但是当我使用jetty 8.1.3在windows server 2003上部署时,它会出现此异常: 这是完整的跟踪: 知道这个异常是什么吗?以及如何修复它?
在我的应用程序中,我为gcm ccs(xmpp)运行这些代码,代码显示以下错误执行时出错,这是代码: