求一个在Oracle数据库上层部署web service的例子 刚学Java不久,就要接手这个项目,麻烦各位朋友帮下忙,给点例子或是资料 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 web services和一般的java类没多大区别,主要是部署问题,eclipse自动能把一个类部署为web services,并生成客户机.所以我的做法是: 1,建立一个动态web工程,并选择将该工程自动加入到一个ear工程 2,在这个动态web工程创建类和方法,和一般的写法没什么区别 3,用eclipse把类部署为web services,会自动生成wsdl和server-config.wsdd 4,把ear工程导出为ear包,把ear包部署到web server中,这样web services就创建并部署好了,很简单. 在ie地址栏里输入wsdl中的那个url,如果能显示出wsdl的内容,部署就ok了 查看部署的所有web services: http://ip:port/动态web工程/servlet/AxisServlet 在第3步中,可以选择web services运行时和服务器,运行时一般有三种,一是apache axis,二是jax-rpc,三是jax-ws,这三种就是常用的web services实现 对于web services的客户端,开发工具也提供自动生成和部署的功能,但生成的都是stub存根,当web services的接口发生变化,就要重新生成stub客户端,并重新部署,所以一般不使用stub类型的客户端.其实只要几行代码,就可调用web services: String endpointURL = "...."; //wsdl中的url Service service = new Service(); Call call = ( Call ) service.createCall(); call.setTargetEndpointAddress( new java.net.URL( endpointURL ) ); call.setOperationName( new QName( "wsdl中的namespace", "要调用的方法名称" ) ); call.addParameter( "入参名称", QName实例, ParameterMode.IN ); call.addParameter( ... ); //加其它参数 call.setReturnClass( Class.forNam( "返回的类名称" ) ); call.setReturnType( new QName( "名字空间", "xml中的类型名称" ), Class.forName( "返回类的名称" ) ); Object[] inputs = ... //入参的值在这里面 call.invoke( inputs ) 所以,只要知道wsdl,就能够调用web services 注意: 1,入参和返回参数必须是基本类型或实现Serializable接口 2,如果是自定义的类,除了要实现Serializable接口,客户端调用时(动态,非stub),要做xml类型到java类的映射,如上面的addParameter()方法和setReturnType()方法 3,如要查看请求和响应soap的内容,apache axis中有一个soapmonitor,将它整合到你的web services应用中即可 就是想通过web services提供一个统一的访问数据库的接口,屏蔽各种语言编写的程序访问数据库时需要编写不同的接口 web service跟oracle有关系么?你的需求应该是在web service里面配置不同数据库类型,即可访问不同数据库。这个工作量可大了。 web service在Oracle上层,应用程序如果想访问Oracle里面的数据,只需要调用通过这个web service提供的API就可以了,这个应该如何部署?多谢回复~~ 那你就写一堆接口访问oracle,然后部署成web service咯。web service就是个RMI调用。 xfire wsdl webservice oraclegoogle一下。很简单的。 Oracle数据库与web service没关系吧 s2sh框架,用Hibernate自动生成DAO调用DAO里面方法出错! jsp 小票打印(类似超市的收银小票) 大家平时都如何处理缩略图啊,有经验的分享下 JDO问题 hibernate 如何根据id取得下一条,id又不一定是连续的 请教用JAVA编写简单的分析器的步骤及例子? 关于Tomcat4.12下的发布问题 如何用JBUILDER中的一个变量和SQL中的一个表进行逐行比较并返回一个布尔值,多谢! 在JBuilder 9 中的光标定位错误问题!求解决方法。 tomcat无法远程访问 Eclipse添加MyEclipse插件问题 关于数据库的检索问题,请高人指点
1,建立一个动态web工程,并选择将该工程自动加入到一个ear工程
2,在这个动态web工程创建类和方法,和一般的写法没什么区别
3,用eclipse把类部署为web services,会自动生成wsdl和server-config.wsdd
4,把ear工程导出为ear包,把ear包部署到web server中,这样web services就创建并部署好了,很简单. 在ie地址栏里输入wsdl中的那个url,如果能显示出wsdl的内容,部署就ok了
查看部署的所有web services: http://ip:port/动态web工程/servlet/AxisServlet 在第3步中,可以选择web services运行时和服务器,运行时一般有三种,一是apache
axis,二是jax-rpc,三是jax-ws,这三种就是常用的web services实现 对于web services的客户端,开发工具也提供自动生成和部署的功能,但生成的都是stub存根,当web services的接口发生变化,就要重新生成stub客户端,并重新部署,所以一般不使用stub类型的客户端.其实只要几行代码,就可调用web services: String endpointURL = "...."; //wsdl中的url
Service service = new Service();
Call call = ( Call ) service.createCall();
call.setTargetEndpointAddress( new java.net.URL( endpointURL ) );
call.setOperationName( new QName( "wsdl中的namespace", "要调用的方法名称" ) );
call.addParameter( "入参名称", QName实例, ParameterMode.IN );
call.addParameter( ... ); //加其它参数
call.setReturnClass( Class.forNam( "返回的类名称" ) );
call.setReturnType( new QName( "名字空间", "xml中的类型名称" ), Class.forName( "返回类的名称" ) );
Object[] inputs = ... //入参的值在这里面
call.invoke( inputs ) 所以,只要知道wsdl,就能够调用web services 注意:
1,入参和返回参数必须是基本类型或实现Serializable接口
2,如果是自定义的类,除了要实现Serializable接口,客户端调用时(动态,非stub),要做xml类型到java类的映射,如上面的addParameter()方法和setReturnType()方法
3,如要查看请求和响应soap的内容,apache axis中有一个soapmonitor,将它整合到你的web services应用中即可
你的需求应该是在web service里面配置不同数据库类型,即可访问不同数据库。这个工作量可大了。
多谢回复~~