`
lxcaoxin
  • 浏览: 128727 次
  • 性别: Icon_minigender_1
  • 来自: 南宁
社区版块
存档分类
最新评论

调用webservice出现javax.xml.bind.UnmarshalException解决办法

 
阅读更多
最近在做Android使用ksoap2包调用Webservice,自己写了Webservice发布在Jboss上做测试时,
出现javax.xml.bind.UnmarshalException,异常内容为
Caused by: javax.xml.bind.UnmarshalException: unexpected element (uri:"http://apj.vote.webservice.com", local:"arg0"). Expected elements are <{}arg0>



原因:服务器端的Webservice的接口方法的参数没有设置好参数名称和命名空间

解决办法,使用@WebParam注解添加参数名称和命名空间
例如:
接口代码:
package com.apj.webservice;

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;


@WebService(targetNamespace = "http://apj.vote.com", name = "VoteWebService", serviceName = "VoteWebService")
public interface VoteWebService {
	@WebResult(name="return",targetNamespace="http://apj.vote.com")
	@WebMethod
	public String vote(@WebParam(name = "teamid",targetNamespace="http://apj.vote.com") long teamid);

}


实现类
package com.apj.webservice.impl;

import javax.ejb.Remote;
import javax.ejb.Stateless;
import javax.inject.Inject;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;

import org.jboss.logging.Logger;

import com.apj.model.Team;
import com.apj.webservice.VoteWebService;

@WebService(targetNamespace = "http://apj.vote.com", name = "VoteWebService", serviceName = "VoteWebService")
@Stateless
@Remote(VoteWebService.class)
public class VoteWebServiceImpl implements VoteWebService {

	@WebResult(name="return",targetNamespace="http://apj.vote.com")
	@WebMethod
	public String vote(@WebParam(name = "teamid",targetNamespace="http://apj.vote.com") long teamid) {

		System.out.println("team id ====" + teamid);
	
		return teamid + "";

	}

}

分享到:
评论
5 楼 fanyin158 2015-11-30  
虽然楼主你长的不好看... 但确实艾斯你了.......
4 楼 chuqingxiao 2015-11-19  
楼主,怎么解决的???加上这两个注解也还是不行。[/b][/b]
3 楼 lsj8080 2014-07-22  
我的好像也不行
2 楼 shairyee 2013-09-02  
太感谢搂住了,是正解。  
1 楼 yun342173024 2012-07-10  
加上targetnamespace和WebParam还是抛出异常

相关推荐

    webservice相关jar包

    2. **JAXB组件**:`javax.xml.bind`和`com.sun.xml.bind`等,用于XML与Java对象之间的自动转换。JAXB使得数据能在XML文档和Java对象间轻松地进行绑定和反绑定,简化了Web服务的数据处理。 3. **WSDL生成与解析**:...

    webservice需要的5个jar包

    `javax.xml.bind`包包含了如`Unmarshaller`和`Marshaller`等核心类,它们可以将Java对象转换为XML,反之亦然。 3. **木材sa-jaxb-runtime.jar**: 这是JAXB运行时库,包含了JAXB API的具体实现。在编译时,JAXB ...

    WebService所需Jar包

    相关的类主要在`javax.xml.bind`包下。 4. **JAF (Java Activation Framework)**:此框架用于处理MIME多部分对象,比如电子邮件中的附件。在WebService中,当涉及到复杂的数据交换时,JAF可以帮助解析和创建MIME...

    java开发常用jar包之webservice.rar

    3. `com.sun.xml.bind.jar`:JAXB(Java Architecture for XML Binding)的实现,用于将Java对象转换为XML格式,反之亦然。 JAX-RS则是用于创建RESTful Web服务的标准API,它简化了构建HTTP服务的步骤,使得开发者...

    javaXML.rar_xml/soap/webservice_Java_

    `javax.xml.bind.JAXBContext`和`javax.xml.bind.Marshaller`等类用于实现这一功能。 4. **StAX(Streaming API for XML)**:StAX是一种流式解析API,它允许开发者通过迭代器逐个处理XML事件,提供了向前和向后...

    webservice

    本篇文章将深入探讨如何创建一个基础的Web服务,并解决可能出现的错误。 首先,创建一个Web服务服务器端程序。使用JDK 6及以上版本是必要的,因为JAX-WS在这些版本中得到支持。以下是一个简单的示例: ```java ...

    Java调用天气Webservice的小应用

    import javax.xml.bind.annotation.XmlElement; import javax.xml.bind.annotation.XmlRootElement; @XmlRootElement(name=getWeatherbyCityName,namespace=http://WebXml.com.cn/) public class CityReq { ...

    webservice客服端所需最少jar包

    - `javax.xml.bind.annotation.jar`: 包含JAXB的注解定义。 4. **HTTP客户端**: 为了通过HTTP/HTTPS协议发送请求,可能需要: - `httpclient.jar`: Apache HttpClient库,提供HTTP通信功能。 - `...

Global site tag (gtag.js) - Google Analytics