java xfire webservice java连接数据库库用什么方法最好

java Webservice都有哪几种方式啊,哪种方式比较好啊_百度知道<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&知了123 的BLOG
用户名:知了123
文章数:26
访问量:7315
注册日期:
阅读量:5863
阅读量:12276
阅读量:327191
阅读量:1035825
51CTO推荐博文
1.下载支持XFire的Jar包.
&&&&& 如果使用MyEclipse的话则不用下载,因为MyEclipse已经集成.在工程上右键选择MyEclipse-&add WebService...进行添加,此处不做介绍.
&&&&& 可以访问xfire.codehaus.org下载XFire框架的安装包,下载时请选择“全部二进制发布包(BinaryDistributioninzippackage)”,而不仅仅是“XFirejar文件(JarofallXFiremodules)”。下载完毕后解压,把根据目录下的xfire-all-1.2.6.jar和lib文件夹中的所有文件都拷贝到工程的WEB-INF/lib中.
2.配置XFire的运行环境.
&&&&& 修改工程中的WEB-INF/web.xml文件,如下:
&version="1.0"&encoding="UTF-8"&&
&version="2.4"& &&
&&&&xmlns="/xml/ns/j2ee"& &&
&&&&xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"& &&
&&&&xsi:schemaLocation="/xml/ns/j2ee& &&
&&&&/xml/ns/j2ee/web-app_2_4.xsd"&&
&&&&XFireServlet&&
&&&&org.codehaus.xfire.transport.http.XFireConfigurableServlet&&
&&&&XFireServlet&&
&&&&/services/*&&
&&&&index.jsp&&
&& &?xml version="1.0" encoding="UTF-8"?&
&web-app version="2.4"
xmlns="/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="/xml/ns/j2ee
/xml/ns/j2ee/web-app_2_4.xsd"&
&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&
注意:此处可以在原来Web.xml文件上进行修改,只需求添加&servlet&和&servlet-mapping&标签即可,引入了XFireServlet类,以处理Web Service请求,并且负责提供Web Service的WSDL(Web服务描述语言)
3.在WEB-INF/classes下创建文件夹:/META-INF/xfire,并在其中创建services.xml文件,文件中内容如下:
&version="1.0"&encoding="UTF-8"&&
&xmlns="http://xfire.codehaus.org/config/1.0"&&
&& &?xml version="1.0" encoding="UTF-8"?&
&beans xmlns="http://xfire.codehaus.org/config/1.0"&
4.此时WebService的环境已经搭建完毕.
&&&&& 在地址栏中输入http://localhost:8888/TestXFire/services,如果不报错说明配置成功.因为没有创建任何WebService所以显示如下信息:
&&&&&&&&& Generated by XFire ( http://xfire.codehaus.org )
5.创建WebService.
ISayHelloService.java文件如下:
package&com.neusoft. &&
public&interface&ISayHelloService &&
&&&&public&String&sayHello(String&name)&; &&
}&& package com.neusoft.
public interface ISayHelloService
public String sayHello(String name) ;
& & & 这个接口告诉服务器,你的WebService哪些方法是可以被用户调用的.下面再来写一个ISayHelloService的实现类,以完成业务逻辑.
SayHelloServiceImpl.java文件如下:
package&com.neusoft. &&
public&class&SayHelloServiceImpl&implements&ISayHelloService &&
&&&&public&String&sayHello(String&name) &&
&&&&&&&&if(name==null&||&"".equals(name)){ &&
&&&&&&&&&&&&return&"为什么不告诉我你的名字?"&; &&
&&&&&&&&} &&
&&&&&&&&return&",你妈喊你回家吃饭啦!"; &&
&&&&public&String&noSay(String&name){ &&
&&&&&&&&return&name+",不告诉你"&; &&
}&& package com.neusoft.
public class SayHelloServiceImpl implements ISayHelloService
public String sayHello(String name)
if(name==null || "".equals(name)){
return "为什么不告诉我你的名字?" ;
return ",你妈喊你回家吃饭啦!";
public String noSay(String name){
return name+",不告诉你" ;
这个类实现了sayHello方法,这个方法是可以通过WebService访问到的.另外一个方法noSay(),该方法没有在接口ISayHelloService中定义,所以不能被WebService调用到.
6.发布WebService.
修改WEB-INF/classes/META-INF/xfire/services.xml文件,修改后的文件如下:
&version="1.0"&encoding="UTF-8"&&
&xmlns="http://xfire.codehaus.org/config/1.0"&&
&&&&&&&&SayHelloService&&
&&&&&&&&com.neusoft.study.ISayHelloService&&
&&&&&&&&com.neusoft.study.SayHelloServiceImpl&&
&& &?xml version="1.0" encoding="UTF-8"?&
&beans xmlns="http://xfire.codehaus.org/config/1.0"&
&name&SayHelloService&/name&
&serviceClass&com.neusoft.study.ISayHelloService&/serviceClass&
&implementationClass&com.neusoft.study.SayHelloServiceImpl&/implementationClass&
&/service&
这个文件定义了一个WebService:SayHelloService,并且同时定义了接口和实现类
7.启动Tomcat。
启动Tomcat,在浏览器地址栏中输入http://localhost:8888/TestXFire/services,会显示如下信息:
Available Services:
HelloWebService
Generated by XFire ( http://xfire.codehaus.org )
点击[wsdl],会显示相应的WSDL信息。
8.测试WebService。
编写一个具有main函数的类,用于测试WebService.
Java代码 650) this.width=650;" alt="复制代码" src="/images/icon_copy.gif" />
package&com.zhang. &&
import&java.net.MalformedURLE &&
import&org.codehaus.xfire.client.C &&
import&org.codehaus.xfire.client.XFireProxyF &&
import&org.codehaus.xfire.service.S &&
import&org.codehaus.xfire.service.binding.ObjectServiceF &&
import&com.zhang.ISayHelloS &&
public&class&SayHello &&
&&&&public&static&void&main(String[]&args) &&
&&&&&&&&String&serviceURL&=&"http://localhost:8888/TestXFire3/services/SayHelloService"&;//SayHelloService是在services.xml中配置的name标签的值 &&
&&&&&&&&Service&serviceModel&=&new&ObjectServiceFactory().create(ISayHelloService.class,&null,&"http://localhost:8888/TestXFire3/services/SayHelloService?wsdl",&null)&;//此处的URL为WSDL所在URL &&
&&&&&&&&XFireProxyFactory&serviceFactory&=&new&XFireProxyFactory()&;&&
&&&&&&&&try&&
&&&&&&&&{ &&
&&&&&&&&&&&&ISayHelloService&service&=&(ISayHelloService)serviceFactory.create(serviceModel,&serviceURL)&; &&
&&&&&&&&&&&&Client&client&=&Client.getInstance(service)&; &&
&&&&&&&&&&&&String&hello&=&service.sayHello(null)&; &&
&&&&&&&&&&&&System.out.println("服务器对无名氏说:"+hello)&; &&
&&&&&&&&&&&&hello&=&service.sayHello("张三")&; &&
&&&&&&&&&&&&System.out.println("服务器对[张三]说:"+hello)&; &&
&&&&&&&&} &&
&&&&&&&&catch&(MalformedURLException&e) &&
&&&&&&&&{ &&
&&&&&&&&&&&&e.printStackTrace(); &&
&&&&&&&&} &&
}&& package com.neusoft.
import java.net.MalformedURLE
import org.codehaus.xfire.client.C
import org.codehaus.xfire.client.XFireProxyF
import org.codehaus.xfire.service.S
import org.codehaus.xfire.service.binding.ObjectServiceF
import com.neusoft.study.ISayHelloS
public class SayHello
* &p&Description:[方法功能描述]&/p&
* @param args
* @author:{ysj}
* @update:[日期YYYY-MM-DD][更改人姓名][变更描述]
public static void main(String[] args)
String serviceURL = "http://localhost:8888/TestXFire3/services/SayHelloService" ;//SayHelloService是在services.xml中配置的name标签的值
Service serviceModel = new ObjectServiceFactory().create(ISayHelloService.class, null, "http://localhost:8888/TestXFire3/services/SayHelloService?wsdl", null) ;//此处的URL为WSDL所在URL
XFireProxyFactory serviceFactory = new XFireProxyFactory() ;//通过代理工厂创建一个service工厂
ISayHelloService service = (ISayHelloService)serviceFactory.create(serviceModel, serviceURL) ;
Client client = Client.getInstance(service) ;
String hello = service.sayHello(null) ;
System.out.println("服务器对无名氏说:"+hello) ;
hello = service.sayHello("张三") ;
System.out.println("服务器对[张三]说:"+hello) ;
catch (MalformedURLException e)
e.printStackTrace();
输出结果为:
服务器对无名氏说:为什么不告诉我你的名字?服务器对[张三]说:,你妈喊你回家吃饭啦!本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!&&|&&
奋发涂墙!
LOFTER精选
网易考拉推荐
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
新建web项目,取名TestXFire,将解压目录下的xfire-all-1.2.6.jar和lib目录下的所有包导入到项目中。2.创建类使用接口的设计是一个好的实践,所以先创建接口:ITestService,代码如下:package com.gdie.xfire.//该接口提供一个方法,用于计算public interface ITestService { public int add(int p1, int p2);}创建接口实现类package com.gdie.xfire.public class TestService implements ITestService { public int add(int p1, int p2) {
// TODO Auto-generated method stub
return p1 + p2; }}3.创建META-INF文件夹简便起见,将WebRoot下的META-INF文件夹复制到项目的src下,这样的话会在部署发布目录下web-inf下的classes下自动建立META-INF,而同时WebRoot下也有一个META-INF文件夹,这两个容易混淆,实际webservice下真正起作用的是web-inf下的classes下的web-inf下的META-INF,所以,关键是在项目的src下面有META-INF这个文件夹,并定义里面的内容,与WebRoot下META-INF无关。然后在src下的META-INF建立xfire子文件夹,里面建立一名叫services.xml配置文件,配置如下:&&?xml version="1.0" encoding="UTF-8"?&&&beans xmlns="http://xfire.codehaus.org/config/1.0"&&&service&&&& &name&TestService&/name&&&& &namespace&http://com/gdie/xfire/example/ITestService&/namespace&&&& &serviceClass&com.gdie.xfire.example.ITestService&/serviceClass&&&& &implementationClass&com.gdie.xfire.example.TestService&/implementationClass&&&/service&&&/beans&&注意:包文件路径com.gdie.xfire.example.ITestService等需要正确对应。关键是在src下面要有META-INF文件夹和里面的文件,否则会报找不到services.xml错误而加载不了项目。&4.修改web.xml配置文件关键是定义XFireServlet,对应代码如下:&&?xml version="1.0" encoding="UTF-8"?&&&web-app version="2.5" xmlns="/xml/ns/javaee"&&&& xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"&&&& xsi:schemaLocation="/xml/ns/javaee&&&& /xml/ns/javaee/web-app_2_5.xsd"&&&&& &welcome-file-list&&&&&&&& &welcome-file&index.jsp&/welcome-file&&&&& &/welcome-file-list&&&&& &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&&&&&& &servlet-mapping&&&&&&&&&& &servlet-name&XFireServlet&/servlet-name&&&&&&&&&& &url-pattern&/servlet/XFireServlet/*&/url-pattern&&&&&& &/servlet-mapping&&&/web-app&&至此,服务器端部署完毕。完整的项目文件结构如图:&将项目加载进tomcat并启动tomcat,无异常。&打开ie,输入&http://localhost:8080/TestXFire/services/&出现&&表明部署成功,点wsdl可以看见一堆xml代码。&5.客户端测试先将刚才建立的TestXFire整个项目打包成jar包(myeclipse的export),名为TestXFire.jar,再新建一个web项目TestXFireClient,导入xfire的包,和刚才的TestXFire工程的打包TestXFire.jar&在src下新建一个测试类,代码如下:&package com.gdie.xfire.import org.codehaus.xfire.service.Simport org.codehaus.xfire.service.binding.ObjectServiceFimport org.codehaus.xfire.client.XFireProxyFimport com.gdie.xfire.example.ITestS;public class MyClient { public static void main(String[] args) {
Service serviceModel = new ObjectServiceFactory().create(
ITestService.class,"TestService","http://com/gdie/xfire/example/ITestService",null);
ITestService service = (ITestService) new XFireProxyFactory().create(
serviceModel,"http://localhost:8080/TestXFile/services/TestService");
System.out.println("返回值是:"+service.add(5, 8));
}catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
} }}运行,输出结果是:&返回值是:13则说明客户端成功。&至此,webservice部署测试例子成功。
阅读(1960)|
用微信&&“扫一扫”
将文章分享到朋友圈。
用易信&&“扫一扫”
将文章分享到朋友圈。
历史上的今天
在LOFTER的更多文章
loftPermalink:'',
id:'fks_',
blogTitle:'Java WebService总结(使用xfire)',
blogAbstract:'1.下载需要的xfire包下载地址:http://xfire.codehaus.org/Download,下载xfire-distribution-1.2.6.zip文件,并解压。新建web项目,取名TestXFire,将解压目录下的xfire-all-1.2.6.jar和lib目录下的所有包导入到项目中。',
blogTag:'',
blogUrl:'blog/static/',
isPublished:1,
istop:false,
modifyTime:3,
publishTime:8,
permalink:'blog/static/',
commentCount:0,
mainCommentCount:0,
recommendCount:0,
bsrk:-100,
publisherId:0,
recomBlogHome:false,
currentRecomBlog:false,
attachmentsFileIds:[],
groupInfo:{},
friendstatus:'none',
followstatus:'unFollow',
pubSucc:'',
visitorProvince:'',
visitorCity:'',
visitorNewUser:false,
postAddInfo:{},
mset:'000',
remindgoodnightblog:false,
isBlackVisitor:false,
isShowYodaoAd:true,
hostIntro:'奋发涂墙!',
hmcon:'0',
selfRecomBlogCount:'0',
lofter_single:''
{list a as x}
{if x.moveFrom=='wap'}
{elseif x.moveFrom=='iphone'}
{elseif x.moveFrom=='android'}
{elseif x.moveFrom=='mobile'}
${a.selfIntro|escape}{if great260}${suplement}{/if}
{list a as x}
推荐过这篇日志的人:
{list a as x}
{if !!b&&b.length>0}
他们还推荐了:
{list b as y}
转载记录:
{list d as x}
{list a as x}
{list a as x}
{list a as x}
{list a as x}
{if x_index>4}{break}{/if}
${fn2(x.publishTime,'yyyy-MM-dd HH:mm:ss')}
{list a as x}
{if !!(blogDetail.preBlogPermalink)}
{if !!(blogDetail.nextBlogPermalink)}
{list a as x}
{if defined('newslist')&&newslist.length>0}
{list newslist as x}
{if x_index>7}{break}{/if}
{list a as x}
{var first_option =}
{list x.voteDetailList as voteToOption}
{if voteToOption==1}
{if first_option==false},{/if}&&“${b[voteToOption_index]}”&&
{if (x.role!="-1") },“我是${c[x.role]}”&&{/if}
&&&&&&&&${fn1(x.voteTime)}
{if x.userName==''}{/if}
网易公司版权所有&&
{list x.l as y}
{if defined('wl')}
{list wl as x}{/list}<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&

我要回帖

更多关于 java xfire 的文章

 

随机推荐