使用 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;
}
}
- ››使用脚本恢复WinXP系统的用户登录密码
- ››使用phpMyadmin创建数据库及独立数据库帐号
- ››使用Zend Framework框架中的Zend_Mail模块发送邮件...
- ››Apache添加mod_aspdotnet.so支持ASP.NET配置指南
- ››使用cout标准输出如何控制小数点后位数
- ››使用nofollow标签做SEO的技巧
- ››使用 WebSphere Message Broker 的 WebSphere Tra...
- ››使用SQL Server事件探查器做应用程序的性能分析
- ››使用SQL Server事件探查器分析死锁原因
- ››Apache中改变php.ini的路径
- ››使用纯文本文件打造WCF服务
- ››使用 Dojo 开发定制 Business Space 小部件,第 4...
更多精彩
赞助商链接