我参与这个项目的开始时间是2012年2月3号。
第一周2月6号到2月11号
这一周我主要做的是调研普元的EOS平台,并操作一个小的演示示例,整个操作流程叙述详细完整。在这个过程中由于资料比较完整基本上没有遇到很头疼困难的问题,所以就在周四的时候这个任务就差不多完成了。周五有新的任务就是开发Web Service应用程序,由于不熟悉整个的流程,也不熟悉web为何物,只能瞎眼抹黑的摸索,很是痛苦。周五搬到新的办公地点,一上午没了。
问题一:开发WebService程序,并实现前端调用。
这个问题首先从写Web Service的HelloWorld开始学起,用Eclipse环境Java开发,并用Web Service的开源框架CXF,其实使用CXF就是到官网上下载后将里面的bin文件里的所有jar包加入到你Eclipse工程的WEB-INF的bin文件中(直接复制拷贝就可以)。
在Eclipse下开发:1,建一个动态web工程或者纯java项目工程都可以,我建的是动态web工程。
2,在工程目录里的src文件夹中创建一个包实现接口类,一个包是接口类的实现类(注意在接口类定义之前要有@WebService声明,在实现类之前有 @WebService @SOAPBinding(style = Style.RPC)声明,这就表明了起是web service服务了)
3,src下建一个发布服务的包,其中的类负责服务的发布:
public static void deployService() {
ProductImp service = new ProductImp(); -----创建服务,创建的是实现类
String address = "http://localhost:9005/product"; -----服务wsdl的地址(实际访问wsdl文件时要在该address后面加?wsdl)
Endpoint.publish(address, service);-----发布服务和地址
}
public static void main(String[] args) throws InterruptedException {
//发布WebService
deployService(); -----执行发布
}
4,客户端的实现,可以在本工程里建立客户端利用工厂的方式:
JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean(); ---jax ws代理工厂种子
factory.setServiceClass(IProduct.class); ---用代理工厂使用接口类名建立客户端服务
factory.setAddress("http://localhost:9005/product"); ----客户端地址
IProduct service = (IProduct) factory.create();-----创建
然后service就可以调用服务器暴露的接口函数,例如:service.returnGuid()。。。。。。就可以了