两个类具有相同的 XML 类型名称。请使用 @XmlType.name 和 @XmlType.namespace 为类分配不同的名称。

说明:

此问题是在webservice服务通过wsimport指令生成客户端之后,编写测试代码测试时的报错。

问题出现原因:

由于生成客户端时,没有指定路径,因此默认生成的路径还是原先服务端提供的路径。

解决办法:

通过wsimport指令指定路径生成客户端,然后重新加载。

过程详情:

首先,构建一个webservice服务端:

package com.learn.Server;

import javax.jws.WebService;
import javax.xml.ws.Endpoint;

@WebService
public class MyFirstWebservice {
	
	public String testWebService(String content){

		System.out.println("服务端收到了:" + content);
		
		String result = "Hello ," + content;
		
		return result ;
	}
	
	public static void main(String[] args){
		
		String address = "http://localhost:9090/MyFirstWebService"; 
	
		Endpoint.publish(address, new MyFirstWebservice());
		
		System.out.println("starting......");
	}

将其启动,然后执行:wsimport  -s . http://localhost:9090/MyFirstWebService?wsdl 获得客户端文件

生成客户端:

将其copy到对应的workspace工程目录下,然后编写测试代码:

package com.learn.webservice;

import com.learn.Client.MyFirstWebservice;
import com.learn.Client.MyFirstWebserviceService;



public class FirstWebservice {
	
	public static void main(String[] args) {
		
		MyFirstWebserviceService service = new MyFirstWebserviceService();
		
		MyFirstWebservice port = service.getMyFirstWebservicePort();
		
		String result = port.testWebService("zhangsan");
		
		System.out.println(result);
		
		
	}

}

启动运行就会看到如题报错!!!!!!!

 至于问题原因就是,在MyFirstWebService.java文件中:

 

 处,classname因为构建的时候没有重新指定构建文件目录,因此会保留原本的服务器端包名。因此改正方法就是:

1) 重新构建:进入工程src目录后,执行 :

wsimport -keep -p com.learn.webservice(测试包名)   http://localhost:9090/MyFirstWebService?wsdl

重新生成客户端后Classname为:

 

重新运行测试代码,即可。

2) 自己动手修改classname中的参数,修改为本工程客户端存放的TestWebService地址(本文中为:com.learn.Client.TestWebService和com.learn.Client.TestWebServiceResponse),两处都需要改哦!

 

  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值