解决cxf+bboss发布的webservice缺少和标签的问题

cxf+bboss发布webservice服务(cxf+bboss发布webservice服务方法请参考文档:
[url=http://bbossgroups.group.iteye.com/group/wiki/3091-webservice-bboss-aop]bbossgroups webservice引擎使用方法[/url]),服务发布成功,查看其wsdl文件的时候却缺少标签,例如:
   
-

-

-

-


-




-
-





认真看发布后的wsdl文件,发现多了标签:
 


标签中的location拿出去在浏览器中打开,里面是“丢失”的两个标签,这时候就发现其实并不是丢失了,而是包含在了标签内

为什么会包含在了标签内?仔细查看生成的wsdl,发现标签内的targetNamespace属性和中namespace属性的值不同,这就是原因所在,发布服务时,接口类和服务实现类的@Webservice注解中没有指定targetNamespace为一个名称或者没有指定时(cxf发布服务时会默认将类和接口的包路径反转,然后作为targetNamespace的值),就会导致上述现象,最终解决方案:
1,将接口类和实现类放在同一个包下,问题即可解决

2,将接口类和实现类中的注解中加入命名空间属性配置,@WebService(targetNamespace="XXXXX"),两个配置值保持一致即可

实现类:
package org.frameworkset.web.ws;

import javax.jws.WebService;

/**
*

Title: WSServiceImpl.java


*

Description:


*

bboss workgroup


*

Copyright (c) 2008


* @Date 2011-4-24
* @author biaoping.yin
* @version 1.0
*/
@WebService(targetNamespace="org.frameworkset.web.ws")
public class WSServiceImpl implements WSService{

public String sayHello(String duoduo) {

if(duoduo == null)
return "";
else
return duoduo;
}

}


接口定义:
package org.frameworkset.web.ws;

import javax.jws.WebService;

/**
*

Title: WSService.java


*

Description:


*

bboss workgroup


*

Copyright (c) 2008


* @Date 2011-4-24
* @author biaoping.yin
* @version 1.0
*/
@WebService(targetNamespace="org.frameworkset.web.ws")
public interface WSService {

public String sayHello(String duoduo)
;

}

你可能感兴趣的:(bboss,aop,quick,start)