那位有时间帮我实现一个web services A+B的计算啊。
解决方案 »
- 关于maven发布war包的问题
- SpingMVC+JPA(Hibernate)整合
- 性能问题请教大家
- struts1.3里的validate plugin怎么实现???急死我了快。。。。
- 迷茫的程序员们,解脱的唯一办法是放弃“框架”!
- 各位大侠,有学习structs和Turbine的中文资料或书籍吗?感谢!(内无文)
- 急需MagicDrawTM UML 6.0 注册码!!!在线等!!
- J2EE、JavaONE 是什么 ?
- 深入探讨J2EE在项目中开发中的实际价值
- 选择时间点击查询显示曲线图
- 请问目前有哪些网站提供---短信Web Service ?????????
- XML的全称是什么呀?它有什么用途呀?
package part; public class Hello {
public int add(int a, int b){
return a+b;
}
}
表示我开发的这个WEB SERVICE会接受一个名字,然后返回一个echo加名字:
编译后放在part文件夹下面,在part同级目录下运行如下命令(当然首先你必须先在电脑上配置好AXIS2)
%AXIS2_HOME%\bin\java2wsdl -cp . -cn part.Hello -of Hello.wsdl
然后会生成一个文件Hello.wsdl, 在运行:
%AXIS2_HOME%\bin\WSDL2Java -uri Hello.wsdl -p part.skeleton -d adb -s -ss -sd -ssi -o build\service
这样就会生成一些JAVA类(生成了一个build文件夹,JAVA类在这文件夹里),这些类就是服务器端的代码,然后里面有个
HelloSkeleton.java,里面会有个方法要你自己处理下,也就是你想实现的加法
然后再build文件夹下运行ant(推荐使用1.7.x版本,AXIS2和ant都可以到www.apache.org里面下),然后你就可以在生产的目录里找到Hello.aar文件,把这个文件放到%TOMCAT_HOME%\webapps\axis2\WEB-INF\services下就可以了,在浏览器里输入http:\\localhost:8080\axis2,你就会发现里面有个services链接,点进去就会发现hello这个服务。
package part; public class Hello {
public int add(int a, int b){
return a+b;
}
}
表示我开发的这个WEB SERVICE会接受a,b,然后返回一个a+b,:
编译后放在part文件夹下面,在part同级目录下运行如下命令(当然首先你必须先在电脑上配置好AXIS2)
%AXIS2_HOME%\bin\java2wsdl -cp . -cn part.Hello -of Hello.wsdl
然后会生成一个文件Hello.wsdl, 在运行:
%AXIS2_HOME%\bin\WSDL2Java -uri Hello.wsdl -p part.skeleton -d adb -s -ss -sd -ssi -o build\service
这样就会生成一些JAVA类(生成了一个build文件夹,JAVA类在这文件夹里),这些类就是服务器端的代码,然后里面有个
HelloSkeleton.java,里面会有个方法要你自己处理下,也就是你想实现的加法
然后再build文件夹下运行ant(推荐使用1.7.x版本,AXIS2和ant都可以到www.apache.org里面下),然后你就可以在生产的目录里找到Hello.aar文件,把这个文件放到%TOMCAT_HOME%\webapps\axis2\WEB-INF\services下就可以了,在浏览器里输入http:\\localhost:8080\axis2,你就会发现里面有个services链接,点进去就会发现hello这个服务。
package com.test.client;import java.net.MalformedURLException;import org.codehaus.xfire.XFire;
import org.codehaus.xfire.XFireFactory;
import org.codehaus.xfire.client.XFireProxyFactory;
import org.codehaus.xfire.service.Service;
import org.codehaus.xfire.service.binding.ObjectServiceFactory;import com.test.ws.MathService;public class CallXfireWebService_POJO { public static void main(String[] args) {
Service serviceModel = new ObjectServiceFactory().create(MathService.class);
XFire xfire = XFireFactory.newInstance().getXFire();
XFireProxyFactory factory = new XFireProxyFactory(xfire);
// String serviceUrl = "http://localhost:8090/xfire/services/MathService";
String serviceUrl = "http://localhost:8086/testWS25/services/MathService";
int p1 = 115;
int p2 = 4;
int p3 = 9;
int p4 = 240;
MathService client = null;
try {
client = (MathService) factory.create(serviceModel, serviceUrl);
} catch (MalformedURLException e) {
System.out.println( "Client call webservice has exception: " + e.toString());
}
int result1 = (int) client.add(p1, p2);
int result2 = (int) client.minus(p3, p4);
System.out.println(result1);
System.out.println(result2);
}
}package com.test.ws;public interface MathService {
public long add(int p1, int p2);
public long minus(int p3, int p4);
}package com.test.ws;public class MathServiceImpl implements MathService{
public long add(int p1, int p2) {
System.out.println(p1 + p2);
return p1 + p2;
} public long minus(int p3, int p4) {
System.out.println(p3 - p4);
return p3 - p4;
}
} web.xml:<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>MathService</name>
<namespace>
http://localhost:8090/XFireWebService/MathService
</namespace>
<serviceClass>com.test.ws.MathServiceImpl</serviceClass>
</service>
</beans>在项目WebServices文件下的services.xml:
其中:
http://localhost:8090/XFireWebService/MathService
要改成自己tomcat服务器的端口 如8086
CallXfireWebService_POJO类里的
String serviceUrl = "http://localhost:8086/testWS25/services/MathService";也要改
当然,服务是要能启动起来的。
不清楚的话,可以Email我:[email protected]
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>MathService</name>
<namespace>
http://localhost:8090/XFireWebService/MathService
</namespace>
<serviceClass>com.test.ws.MathServiceImpl</serviceClass>
</service>
</beans>