采用axis2 pojo开发webservice要点
服务器开发
此处以新建一个web工程为起始点: 1,将axis2.war下:axis2-web文件夹,WEB-INF下conf,lib,modules,web.xml复制到web工程同级目录下;classes下的org.apache.axis2.webapp/XXXservlet源文件(此处反编译过来的)复制到src下。 最少必需jar包如下 XmlSchema-1.4.3.jar public class HelloWorld { ??? public String sayHello() { ??????? return "hello,Axis2"; ??? } 3,将HelloWorldService字节码文件复制到WEB-INF/pojo下(conf/axis2.xml,默认此文件夹下的字节码部署为webservice已经开启) 4,访问http://localhost:8080/axis2test/services/HelloWorld?wsdl 成功 如果直接访问http://localhost:8080/axis2test/services/HelloWorld仍然会报The endpoint reference (EPR) for the Operation not found is /axis2test/services/HelloWorld and the WSA Action = null的提示,此不影响后面使用。 客户端访问 首先配置环境变量AXIS2_HOME到yourlocalpathaxis2-1.5.5 然后添加类路径set path=%path%;%AXIS2_HOME%BIN; 做了准备工作后,接下来: 1,生成wsdl文件 d:axis2testbuildclasses>java2wsdl -cn HelloWorld 2,根据wsdl文件生成stubd:axis2testbuildclasses>wsdl2java -uri http://localhost:8080/axis2test/services/HelloWorld?wsdl -p client -s -o stub? 注: -s若不保留,生成stub中会采用callbackhandler方式。但是此处并没有生成这个回调函数类因此报错。 -uri此处直接用网络路径wsdl,采用本地wsdl时工作不正常可能需要修改,缺少.XXXHttpSoap12Endpoint/后缀。 -p指定包结构,-o指定代码保存路径。 3,测试访问webservice public static void main(String[] args) {??????? try { ??????????? HelloWorldStub stub=new HelloWorldStub("http://localhost:8080/axis2test/services/HelloWorld"); ??????????? SayHelloResponse res= stub.sayHello(); ??????????? System.out.println(res.get_return()); ??????? } catch (AxisFault e) { ??????????? // TODO Auto-generated catch block ??????????? e.printStackTrace(); ??????? } catch (RemoteException e) { ??????????? // TODO Auto-generated catch block ??????????? e.printStackTrace(); ??????? } ?????? ? ??? } eclipse直接在web工程右键上选择run on server发布后的webapp位置 web工程workspace-path.metadata.pluginsorg.eclipse.wst.server.coretmp1wtpwebapps 参考网页 WebService大讲堂之Axis2(1):用POJO实现0配置的WebService (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |