社区
Web 开发
帖子详情
java 新手求借
cmaiyouxi
2009-11-05 12:18:28
eclipse 创建 webservice
jquery 如何调用 java 创建的 webservice
...全文
81
7
打赏
收藏
java 新手求借
eclipse 创建 webservice jquery 如何调用 java 创建的 webservice
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
swandragon
2009-11-05
打赏
举报
回复
参考这个
http://www.cnitblog.com/seeyeah/archive/2008/06/12/45471.html
cmaiyouxi
2009-11-05
打赏
举报
回复
主要告诉我 jquery 如何调用 java 创建的 webservice
鲜为人知
2009-11-05
打赏
举报
回复
看看,(⊙o⊙)
sunny936
2009-11-05
打赏
举报
回复
java调用java写的web service基本包括两大步:
第一步就是创建一个web service
第二部就是创建一个客户端,以调用上面创建好的web service
具体步骤如下:
如何创建一个Web Services
1、创建一个服务接口(跟普通的接口没有任何区别)
2、创建一个Java类,继承上面定义的服务接口。并保证该类和默认构造函数确保为public
3、增加XFire servlet相关条目到web.xml中
包括:
Java代码
<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>
<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>
4、创建services.xml,把它放到WEB-INF/classes/META-INF/xfire目录下
如:
Java代码
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>Banking</name>
<namespace>mybank</namespace>
<serviceClass>globalzt.service.IBankingService</serviceClass> <implementationClass>globalzt.serviceImpl.BankingServiceImpl</implementationClass>
</service>
</beans>
<PRE class=java name="code">让我们看看这里都包含了什么内容。Web Services的定义包含在元素中,它还含有一些子元素。第一个子元素是,它可以是你提供任何的合法名字。这将会被客户端程序和其它需要定位你的服务的组件用到。例如,在服务准备好以后,你将在浏览器上使用这个名字来查看WSDL。
下一个子元素是<namespace>。任何合法的XML名字都是可以的。<namespace>用来唯一标识你的服务的各个参数。
<serviceClass>元素包含了Java类的名字,它指定了方法签名。在我们的例子中,它是接口IBankingService。如果Java类没有实现任何接口,你就需要把类的名字放在这里。在你的Java类或者接口中可能有几个方法。只需要一个入口把它们全部发布为Web Services。
<implementationClass>保存了实现方法的Java类名。这是一个可选元素。如果上一个元素<serviceClass>包含了一个接口,那么相应的实现类必须在这里指定。
就是这样。我们的Web Services配置完成了。
</PRE>
<BR>
<BR>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
<name>Banking</name>
<namespace>mybank</namespace>
<serviceClass>globalzt.service.IBankingService</serviceClass>
<implementationClass>globalzt.serviceImpl.BankingServiceImpl</implementationClass>
</service>
</beans>
Java代码 让我们看看这里都包含了什么内容。Web Services的定义包含在元素中,它还含有一些子元素。第一个子元素是,它可以是你提供任何的合法名字。这将会被客户端程序和其它需要定位你的服务的组件用到。例如,在服务准备好以后,你将在浏览器上使用这个名字来查看WSDL。 下一个子元素是<namespace>。任何合法的XML名字都是可以的。<namespace>用来唯一标识你的服务的各个参数。 <serviceClass>元素包含了Java类的名字,它指定了方法签名。在我们的例子中,它是接口IBankingService。如果Java类没有实现任何接口,你就需要把类的名字放在这里。在你的Java类或者接口中可能有几个方法。只需要一个入口把它们全部发布为Web Services。 <implementationClass>保存了实现方法的Java类名。这是一个可选元素。如果上一个元素<serviceClass>包含了一个接口,那么相应的实现类必须在这里指定。 就是这样。我们的Web Services配置完成了。 让我们看看这里都包含了什么内容。Web Services的定义包含在元素中,它还含有一些子元素。第一个子元素是,它可以是你提供任何的合法名字。这将会被客户端程序和其它需要定位你的服务的组件用到。例如,在服务准备好以后,你将在浏览器上使用这个名字来查看WSDL。
下一个子元素是<namespace>。任何合法的XML名字都是可以的。<namespace>用来唯一标识你的服务的各个参数。
<serviceClass>元素包含了Java类的名字,它指定了方法签名。在我们的例子中,它是接口IBankingService。如果Java类没有实现任何接口,你就需要把类的名字放在这里。在你的Java类或者接口中可能有几个方法。只需要一个入口把它们全部发布为Web Services。
<implementationClass>保存了实现方法的Java类名。这是一个可选元素。如果上一个元素<serviceClass>包含了一个接口,那么相应的实现类必须在这里指定。
就是这样。我们的Web Services配置完成了。
5、增加XFire和第三方包到你的Web应用的WEB-INF/lib文件夹中
• activation-1.0.2.jar
• commons-codec-1.3.jar
• commons-httpclient-3.0.jar
• commons-logging-1.0.4.jar
• jaxen-1.1-beta-8.jar
• jdom-1.0.jar
• log4j-1.2.x.jar
• mail-1.3.3_01.jar
• spring-1.2.x.jar
• stax-api-1.0.jar
• wsdl4j-1.5.2.jar
• wstx-asl-2.9.jar
• xbean-2.1.0.jar
• xbean-spring-2.2.jar
• xfire-all-1.0.jar
• XmlSchema-1.0.jar
服务接口代码如下:
Java代码
public interface IBankingService {
public String transferFunds(
String fromAccount, String toAccount, double amount, String currency);
}
public interface IBankingService {
public String transferFunds(
String fromAccount, String toAccount, double amount, String currency);
}
服务实现类代码如下:
Java代码
public class BankingService implements IBankingService {
//Default constructor.
public BankingService(){
}
/** Transfers fund from one account to another.
*/
public String transferFunds(
String fromAccount, String toAccount, double amount, String currency){
String statusMessage = "";
//Call business objects and other components to get the job done.
//Then create a status message and return.
try {
NumberFormat formatter = new DecimalFormat("###,###,###,###.00");
statusMessage = "COMPLETED: " + currency + " " + formatter.format(amount)+
" was successfully transferred from A/C# " + fromAccount + " to A/C# " + toAccount;
} catch (Exception e){
statusMessage = "BankingService.transferFunds(): EXCEPTION: " + e.toString();
}
return statusMessage;
}
}
public class BankingService implements IBankingService {
//Default constructor.
public BankingService(){
}
/** Transfers fund from one account to another.
*/
public String transferFunds(
String fromAccount, String toAccount, double amount, String currency){
String statusMessage = "";
//Call business objects and other components to get the job done.
//Then create a status message and return.
try {
NumberFormat formatter = new DecimalFormat("###,###,###,###.00");
statusMessage = "COMPLETED: " + currency + " " + formatter.format(amount)+
" was successfully transferred from A/C# " + fromAccount + " to A/C# " + toAccount;
} catch (Exception e){
statusMessage = "BankingService.transferFunds(): EXCEPTION: " + e.toString();
}
return statusMessage;
}
}
如何创建一个客户端:
你可以使用任何的SOAP工具创建客户端,例如,.Net或者Apache Axis,有很多种方法:使用从WSDL产生的stubs,使用动态代理,等等。在例子中,我们使用一个动态代理,以一个简单的Servlet形式,叫做WsClient.java。为了保持代码两最小,所有在屏幕显示的元素都放在了doGet()方法中。对Web Service的实际调用由callWebService()方法完成,它相当地简单。和下面的类似:
Java代码
/* Call the Web service
*
*/
public String callWebService(
String fromAccount, String toAccount, double amount, String currency)
throws MalformedURLException, Exception {
//Create a metadata of the service
Service serviceModel = new ObjectServiceFactory().create(IBankingService.class);
log.debug("callSoapServiceLocal(): got service model." );
//Create a proxy for the deployed service
XFire xfire = XFireFactory.newInstance().getXFire();
XFireProxyFactory factory = new XFireProxyFactory(xfire);
String serviceUrl = "http://localhost:8080/websvc/services/Banking";
IBankingService client = null;
try {
client = (IBankingService) factory.create(serviceModel, serviceUrl);
} catch (MalformedURLException e) {
log.error("WsClient.callWebService(): EXCEPTION: " + e.toString());
}
//Invoke the service
String serviceResponse = "";
try {
serviceResponse = client.transferFunds(fromAccount, toAccount, amount, currency);
} catch (Exception e){
log.error("WsClient.callWebService(): EXCEPTION: " + e.toString());
serviceResponse = e.toString();
}
log.debug("WsClient.callWebService(): status=" + serviceResponse);
//Return the response
return serviceResponse;
}
/* Call the Web service
*
*/
public String callWebService(
String fromAccount, String toAccount, double amount, String currency)
throws MalformedURLException, Exception {
//Create a metadata of the service
Service serviceModel = new ObjectServiceFactory().create(IBankingService.class);
log.debug("callSoapServiceLocal(): got service model." );
//Create a proxy for the deployed service
XFire xfire = XFireFactory.newInstance().getXFire();
XFireProxyFactory factory = new XFireProxyFactory(xfire);
String serviceUrl = "http://localhost:8080/websvc/services/Banking";
IBankingService client = null;
try {
client = (IBankingService) factory.create(serviceModel, serviceUrl);
} catch (MalformedURLException e) {
log.error("WsClient.callWebService(): EXCEPTION: " + e.toString());
}
//Invoke the service
String serviceResponse = "";
try {
serviceResponse = client.transferFunds(fromAccount, toAccount, amount, currency);
} catch (Exception e){
log.error("WsClient.callWebService(): EXCEPTION: " + e.toString());
serviceResponse = e.toString();
}
log.debug("WsClient.callWebService(): status=" + serviceResponse);
//Return the response
return serviceResponse;
}
min123456520
2009-11-05
打赏
举报
回复
没遇见过,期待高手解答!
up
wifewifewife
2009-11-05
打赏
举报
回复
[Quote=引用 5 楼 swandragon 的回复:]
参考这个
http://www.cnitblog.com/seeyeah/archive/2008/06/12/45471.html
[/Quote]
jquery 如何调用 java 创建的 webservice
你可以去这里看看吧.
http://bbs.chinaunix.net/viewthread.php?tid=1177375
kbyst
2009-11-05
打赏
举报
回复
很"抽象"的问题
LZ最好"实例化"一下。。。
java
新手
8个小项目
Java
新手
在学习编程的过程中,通过实践项目来巩固理论知识是非常重要的。"
java
新手
8个小项目"这个资源就提供了这样的机会,让初学者可以动手实践,加深对
Java
编程的理解。这8个项目涵盖了不同的功能和应用场景,有助...
java
新手
小游戏(2020寒假疫情期间).zip
标题中的“
java
新手
小游戏(2020寒假疫情期间)”表明这是一个专为
Java
初学者设计的游戏项目,可能是一个简单的游戏程序,旨在帮助学习者在2020年寒假期间通过实践提升
Java
编程技能。游戏类型可能相对基础,适合教学...
java
图书管理系统(GUI)图形界面版
6. 库存数量逻辑处理:系统需要实时更新图书库存,确保借出图书时扣除相应数量,归还图书时增加库存。同时,对于库存为零的图书,应禁止单位借阅。 在数据库设计上,遵循了第三范式(3NF),这是数据库规范化的一个...
java
反编译小工具jd-gui
例如,如果你在使用一个开源库但缺乏文档,JD-GUI可以帮助你查看其实现细节,甚至可以借此修改或扩展库的功能。 此外,JD-GUI还具有搜索功能,允许你在反编译的代码中查找特定的字符串或方法。这对于定位问题或理解...
java
程序模板—初级
"
Java
程序模板—初级"是一个专门为
Java
新手
准备的学习资源,旨在帮助他们更轻松地入门并实践
Java
编程。 这个压缩包文件“程序模板(
Java
大学实用教程实验指导)”很可能包含了多个示例代码文件,涵盖了
Java
的基础语法...
Web 开发
81,116
社区成员
341,738
社区内容
发帖
与我相关
我的任务
Web 开发
Java Web 开发
复制链接
扫一扫
分享
社区描述
Java Web 开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章