weixin_42221963 2008-07-16 14:28
浏览 174
已采纳

cxf简单的helloworld的问题

import javax.jws.WebParam;
import javax.jws.WebService;

@WebService
public interface HelloWorld {
String sayHi(@WebParam(name="text") String text);
}

这样在客户端,
String response = client.sayHi("Joe");
System.out.println("Response: " + response);
返回结果是 Response: Hello Joe。

但是如果把接口类里面的
(@WebParam(name="text") 去掉,变成

import javax.jws.WebParam;
import javax.jws.WebService;

@WebService
public interface HelloWorld {
String sayHi( String text);

}

结果返回就是Response: Hello null。

这是为什么,我看了其他人写的接口类,不是每个都要加类似与(@WebParam(name="text") 的东西吧。

  • 写回答

1条回答 默认 最新

  • iteye_5081 2008-07-18 08:04
    关注

    这是因为java在编译的时候,缺省会把String sayHi( String text); 中的参数名去掉并用arg0替代,这样通过reflection读到的参数名就不是test了。
    如果你把WebParam annotation 去掉,CXF就无法定位到正确的参数名了。

    如果你不想写WebParam的话,你可以在调用javac的时候是用-g 选项,这样javac就不会把参数名替换掉了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献