WebService --- 急等 练习2个项目 其中一个需要作为服务器端 提供服务 书上说需要添加xfire-all-1.2.6.jar 问朋友又说不需要 本人初学不懂 这个具体是做什么的 在哪里加合适? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 转载一下!!看一下!!我做项目时,没有用到这个东西!!开发环境:eclipse3.2+tomcat5.5.9+xfire1.2.6一:在MyEclipse中新建项目XFire首先从官方网址http://xfire.codehaus.org下载最新的1.2.6版本(截至2007-9-9)。从网站上下载xfire-distribution-1.2.6.zip文件,解压缩后得到如下的目录结构:api:主要是javadoc文档资料;examples:xfire自带的例子程序;lib:xfire所需的jar文件;manual:xfire 模块xfire-all-1.2.6.jar:是xfire提供的整体jar包二。在MyEclipse中新建XFire项目将xfire-1.2.6\lib下面的内容拷贝到项目的lib目录中将xfire-1.2.6\xfire-all-1.2.6.jar拷贝到项目的lib目录中1.建立源文件夹demo;新建MathService.java文件java文件内容如下:public class MathService {public int Add(int a ,int b) { return a+b ; }}2、web.xml和services.xml文件内容设置<?xml version="1.0" encoding="ISO-8859-1"?><!-- START SNIPPET: webxml --><!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app><servlet> <servlet-name>XFireServlet</servlet-name> <display-name>XFire Servlet</display-name> <servlet-class> org.codehaus.xfire.transport.http.XFireConfigurableServlet </servlet-class></servlet><servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/servlet/XFireServlet/*</url-pattern></servlet-mapping><servlet-mapping> <servlet-name>XFireServlet</servlet-name> <url-pattern>/services/*</url-pattern></servlet-mapping></web-app><!-- END SNIPPET: webxml -->services.xml(空services.xml)<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://xfire.codehaus.org/config/1.0"></beans>加了部署的空services.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://xfire.codehaus.org/config/1.0"><service> <name>MathService</name> <namespace>http://MathService</namespace> <serviceClass>demo.MathService</serviceClass></service></beans>services.xml在META-INF目录下,并且要将META-INF拷贝道WEB-INF下,否则将找不到services.xmlhttp://localhost:8080/XFire/services/MathService?wsdl如能正确的显示成功页面,说明我们的xfire配置成功了。下面就可基于xfire进行Web Service开发了。3、生成web service客户端调用文件XFire的WEB-INF中增加一个build.xml文件。xfire提供了一个ant任务:<taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask" classpathref="myclasspath" />build.xml文件的内容如下:<?xml version="1.0"?><project name="XFire" default="genfiles" basedir="."> <property name="lib" value="lib" /> <path id="myclasspath"> <fileset dir="${lib}"> <include name="*.jar" /> </fileset> <pathelement location="${genfiles}" /> </path> <!--通过XFire ant任务生成客户端代码的存放位置--> <property name="code_path" value="src.client" /> <!--需要生成客户端代码的wsdl文件--> <property name="wsdl_path" value="http://localhost:8080/XFire/services/MathService?wsdl" /> <!--生成客户端代码的包名--> <property name="code_package" value="demo" /> <!-- Remove classes directory for clean build --> <target name="clean" description="Prepare for clean build"> <delete dir="${code_path}"/> <mkdir dir="${code_path}"/> </target> <!--<target name="genfiles" depends="clean" description="Generate the files"> --> <target name="genfiles" description="Generate the files"> <taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask" classpathref="myclasspath" /> <!--outputDirectory属性定义创建的代码所在的文件夹 wsdl是web服务的wsdl文件 package代表创建的代码的package --> <wsgen outputDirectory="${code_path}" wsdl="${wsdl_path}" package="${code_package}" binding="xmlbeans" /> </target></project>执行ant脚本,将会生成客户端代码,共三个文件。会放在包demo下面,文件分别是:MathServiceClient.java、MathServiceImpl.java、MathServicePortType.java4、编写测试代码,通过调用5中生成的代码,编写TestClient.java文件。文件内容如下:public class TestClient {/** *//** * 客户端测试 * 通过ant脚本生成的客户端进行调用 * * @param name 传入的参数,客户名字 * @return 返回sayHello()的返回值 */ public static int testClient(int a,int b){ MathServiceClient SC = new MathServiceClient(); MathServicePortType SP = SC.getMathServiceHttpPort(); int result =SP.add(a, b); return result; } /** *//** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { System.out.println(testClient(1,2)); }} E6如何玩真说武士道烈传 geoserver2.0配置地图报错 jsp写入数据库失败 一个简单的Sturts标签的问题 如何实现带条件的分页? 新手求救:怎样写代码:JSP页面等待2秒跳转另一个页面?JSP页面怎么显示数字时钟? 怎样通过servlet,jsp把服务器上的一个excel文件输出到浏览器显示和通过浏览器自动下载. java.sql.SQLException: 对只转发结果集的无效操作: last 一个关于数组的问题 请教ssm配置的问题 jsp传递过来参数为中文,程序中接收过来是乱码,如何处理呢? 如何判定QQ是否从网吧登录
我做项目时,没有用到这个东西!!
开发环境:eclipse3.2+tomcat5.5.9+xfire1.2.6一:在MyEclipse中新建项目XFire首先从官方网址http://xfire.codehaus.org下载最新的1.2.6版本(截至2007-9-9)。从网站上下载xfire-distribution-1.2.6.zip文件,解压缩后得到如下的目录结构:api:主要是javadoc文档资料;examples:xfire自带的例子程序;lib:xfire所需的jar文件;manual:xfire 模块xfire-all-1.2.6.jar:是xfire提供的整体jar包
二。在MyEclipse中新建XFire项目将xfire-1.2.6\lib下面的内容拷贝到项目的lib目录中将xfire-1.2.6\xfire-all-1.2.6.jar拷贝到项目的lib目录中1.建立源文件夹demo;新建MathService.java文件
java文件内容如下:public class MathService {
public int Add(int a ,int b)
{
return a+b ;
}
}2、web.xml和services.xml文件内容设置<?xml version="1.0" encoding="ISO-8859-1"?>
<!-- START SNIPPET: webxml -->
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app><servlet>
<servlet-name>XFireServlet</servlet-name>
<display-name>XFire Servlet</display-name>
<servlet-class>
org.codehaus.xfire.transport.http.XFireConfigurableServlet
</servlet-class>
</servlet><servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/servlet/XFireServlet/*</url-pattern>
</servlet-mapping><servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
</web-app>
<!-- END SNIPPET: webxml -->services.xml(空services.xml)
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0"></beans>加了部署的空services.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>MathService</name>
<namespace>http://MathService</namespace>
<serviceClass>demo.MathService</serviceClass>
</service>
</beans>services.xml在META-INF目录下,并且要将META-INF拷贝道WEB-INF下,否则将找不到services.xmlhttp://localhost:8080/XFire/services/MathService?wsdl
如能正确的显示成功页面,说明我们的xfire配置成功了。下面就可基于xfire进行Web Service开发了。
3、生成web service客户端调用文件
XFire的WEB-INF中增加一个build.xml文件。xfire提供了一个ant任务:
<taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask" classpathref="myclasspath" />
build.xml文件的内容如下:<?xml version="1.0"?>
<project name="XFire" default="genfiles" basedir=".">
<property name="lib" value="lib" />
<path id="myclasspath">
<fileset dir="${lib}">
<include name="*.jar" />
</fileset>
<pathelement location="${genfiles}" />
</path>
<!--通过XFire ant任务生成客户端代码的存放位置-->
<property name="code_path" value="src.client" />
<!--需要生成客户端代码的wsdl文件-->
<property name="wsdl_path" value="http://localhost:8080/XFire/services/MathService?wsdl" />
<!--生成客户端代码的包名-->
<property name="code_package" value="demo" />
<!-- Remove classes directory for clean build -->
<target name="clean" description="Prepare for clean build">
<delete dir="${code_path}"/>
<mkdir dir="${code_path}"/>
</target>
<!--<target name="genfiles" depends="clean" description="Generate the files"> -->
<target name="genfiles" description="Generate the files">
<taskdef name="wsgen" classname="org.codehaus.xfire.gen.WsGenTask" classpathref="myclasspath" />
<!--outputDirectory属性定义创建的代码所在的文件夹
wsdl是web服务的wsdl文件
package代表创建的代码的package
-->
<wsgen outputDirectory="${code_path}" wsdl="${wsdl_path}" package="${code_package}" binding="xmlbeans" />
</target>
</project>执行ant脚本,将会生成客户端代码,共三个文件。会放在包demo下面,文件分别是:MathServiceClient.java、MathServiceImpl.java、MathServicePortType.java
4、编写测试代码,通过调用5中生成的代码,编写TestClient.java文件。文件内容如下:
public class TestClient {
/** *//**
* 客户端测试
* 通过ant脚本生成的客户端进行调用
*
* @param name 传入的参数,客户名字
* @return 返回sayHello()的返回值
*/
public static int testClient(int a,int b){
MathServiceClient SC = new MathServiceClient();
MathServicePortType SP = SC.getMathServiceHttpPort();
int result =SP.add(a, b);
return result;
}
/** *//**
* @param args
* @throws Exception
*/
public static void main(String[] args) throws Exception {
System.out.println(testClient(1,2));
}
}