使用 Apache Geronimo 将 Apache Axis 应用程序移植到 Axis2
2010-03-19 00:00:00 来源:WEB开发网注意,Ask 操作的返回类型和传入对象分别是 AskResponseDocument 和 AskDocument,而不仅仅是简单的 String 对象。像 Axis 一样,问题还是 String 对象,可以通过首先获得传入的 AskDocument 对象中的 Ask 对象并调用 Ask 对象的 getQuestion() 方法来获得问题。
用粗体字显示的最后七行创建了响应。首先,AskResponseDocument 对象通过在 AskResponseDocument 中创建的 AskResponse 对象得以实例化。最后,将通过调用 AskResponse 对象的 setAnswer() 方法设置回答。注意,AskResponseDocument 将作为响应返回到进行调用的 SOAP 客户端。回答和 AskResponse 对象将封装在 AskResponseDocument 对象中。
如上例所示,使用 Axis2 更模块化的体系结构,向 Axis2 添加更多特性和功能的过程更容易编码和实现。
Java 客户机
调用 Web 服务也很不同一般,这反映了 Axis2 的改进和提高。请在 ./src/com/ibm/axis2/ask/Client.java 中创建一个文件并如 清单 5 所示定义它。
清单 5. Axis2 客户机代码
package com.ibm.axis2.ask;
import com.example.www.ask.xsd.*;
public class Client{
public static void main(java.lang.String args[]){
try{
AskPortTypeStub stub = new AskPortTypeStub(null,
"http://localhost:8080/axis2/services/AskService");
ask(stub);
} catch(Exception e){
e.printStackTrace();
}
}
/* Ask */
public static boolean ask(AskPortTypeStub stub){
try{
AskDocument reqDoc = AskDocument.Factory.newInstance();
AskDocument.Ask reqDoc2 = reqDoc.addNewAsk();
reqDoc2.setQuestion("I have a hole in"+
" my bucket, dear Liza, with what should I fix it?");
AskResponseDocument resDoc = stub.Ask(reqDoc);
System.out.println("ANSWER RECEIVED: " +
resDoc.getAskResponse().getAnswer());
return true;
} catch(Exception e){
e.printStackTrace();
}
return false;
}
}
- ››使用linux中的quota教程
- ››apache设置域名绑定 以及绑定不起作用的排查
- ››使用jxl生成带动态折线图的excel
- ››apache rewrite将指定URL转向指定的几个服务器
- ››使用mysql mysqldump进行数据库迁移
- ››使用jquery是新tab形式
- ››使用QUnit进行Javascript单元测试
- ››使用UITextFieldDelegate来隐藏键盘
- ››使用公式提取Excel中的日期后发现格式不对
- ››使用SQL Azure 的BI 解决方案
- ››使用PLSQL Developer工具导出sql文件
- ››使用双缓冲技术实现Android画板应用
更多精彩
赞助商链接