2007-07-19
.Net(C#) 调用 java webservice 的问题[转载]
C# 调用 java webservice 的问题
前一段时间一直被一个 c#调用 Java web service的问题困扰。
http://www.cnitblog.com/reene/archive/2007/06/29/29217.html
在网上一直找不到答案,后来在国外的一个论坛上有人提醒可能是命名空间的原因,摸索以后终于顺利解决这个问题。特别把它记下以后方便。
问题:
如果用c#调用java 的 webservice 时,发现调用返回值为基本类型(如 xsd:string xsd:int)的服务能过正常返回,而调用返回复杂类型如自定义对象时却返回 null,同时抓包发现服务器段明明已经正常答复soap消息。 就需要考虑命名空间的问题。
在我碰到的问题中,由于我把用来返回结果的bean 单独放到一个 xxx.xxx.bean 包中,而把webservice 的文件放在 xxx.xxx.service包中,在用wtp生成 webservice 服务时就把它们放到不同的命名空间中去了。
解决方案:
把用来的bean文件放置到与service同一个package中,这样用wtp lomboz之类工具生成时就直接会在一个命名空间中。
--本人备忘
最近在一个项目中,就遇到了这个问题,此文对我帮助很大,先谢谢这会兄弟了。另附一小段代码,备忘一下:
Java端的webservice中saveUser(JafUser user)方法中的JafUser类代码如下:
java 代码
- /**
- *
- * @author lixy 2006-12-14 10:16:04
- *
- */
- public class JafUser implements java.io.Serializable {
- // Fields
- private String userId;
- private String userName;
- private Integer regionId;
- // Constructors
- /** default constructor */
- public JafUser() {
- }
- public Integer getRegionId() {
- return regionId;
- }
- public void setRegionId(Integer regionId) {
- this.regionId = regionId;
- }
- public String getUserId() {
- return userId;
- }
- public void setUserId(String userId) {
- this.userId = userId;
- }
- public String getUserName() {
- return userName;
- }
- public void setUserName(String userName) {
- this.userName = userName;
- }
- public String toString() {
- StringBuffer sb = new StringBuffer("[ ");
- sb.append("userId = "+this.userId).append(",");
- sb.append("userName = "+this.userName).append(",");
- sb.append("regionId = "+this.regionId).append(" ]");
- return sb.toString();
- }
- }
- ConsoleApplication1.com.lixy.ws.UserServiceEx manager = new ConsoleApplication1.com.lixy.ws.UserServiceEx();
- JafUser user = new JafUser();
- user.userId = "lixy01";
- user.userName = "lixiangyang01";
- user.regionId = 4301;
- user.regionIdSpecified = true;
- String result = manager.saveUser(user);
- Console.WriteLine("Result = " + result);
- Console.ReadLine();
regionIdSpecified 虽然不是JafUser对象()中的属性,但是在测试程序时,发现只有将user.regionIdSpecified设为 true,regionId才被发送到webservice端。望...
- 16:28
- 浏览 (1311)
- 评论 (1)
- 分类: WebService
- 进入论坛
- 相关推荐
- 浏览: 25884 次
- 性别:

- 来自: 深圳

- 详细资料
搜索本博客
我的相册
struts2-ajax-code
共 2 张
共 2 张
链接
最新评论
-
JSON的序列化和反序列化
看上去不错
-- by sunyujia -
Struts2.0与DWR2.0 的整 ...
正在测试楼主的附件...
-- by custer7572 -
校验码图片生成
老兄,知识要灵活运用...不是什么代码Copy过去就没事了!
-- by lxy19791111 -
校验码图片生成
<img src="/servlet/randomImgCodeServl ...
-- by hqingjin83 -
校验码图片生成
唔。。。验证码无法显示啊
-- by hqingjin83






评论排行榜