怎么在eclipse中浏览器访问webservicee

君,已阅读到文档的结尾了呢~~
用ECLIPSE创建WEBSERVICE
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
用ECLIPSE创建WEBSERVICE
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&134908人阅读
WebService(2)
JAVA(60)
1.参考文献:
1.利用Java编写简单的WebService实例 &
2.Axis2与Eclipse整合开发Web Service &
2.实例1(主要看到[2])
2.1.系统功能:&
开发一个计算器服务CalculateService,这个服务包含加(plus)、减(minus)、乘(multiply)、除(divide)的操作。
2.2.开发前准备:
安装Eclipse-jee;下载最新版本的Axis2,网址 ,选择Standard Binary Distribution的zip包,解压缩得到的目录名axis2-1.4.1,目录内的文件结构如下:
2.3.开发前配置:
在Eclipse的菜单栏中,Window --& Preferences --& Web Service --& Axis2&Perferences,在Axis2 runtime location中选择Axis2解压缩包的位置,设置好后,点&OK&即行。(如图)
2.4.开发Web Service:
(1)新建一个Java Project,命名为&WebServiceTest1&
(2)新建一个class,命名为&CalculateService&,完整代码如下:
package edu.sjtu.
* 计算器运算
* @author rongxinhua
public class CalculateService {
public float plus(float x, float y) {
return x +
public float minus(float x, float y) {
return x -
public float multiply(float x, float y) {
return x *
public float divide(float x, float y) {
return x /
return -1;
}(3)在&WebServiceTest1&项目上new --& other,找到&Web Services&下面的&Web Service&;
(4)下一步(next),在出现的Web Services对象框,在Service implementation中点击&Browse&,进入Browse Classes对象框,查找到我们刚才写的写的CalculateService类。(如下图)。点击&ok&,则回到Web Service话框。
(5)在Web Service对话框中,将Web Service type中的滑块,调到&start service“的位置,将Client&type中的滑块调到&Test client&的位置。
(6)在Web Service type滑块图的右边有个&Configuration&,点击它下面的选项,进入Service Deployment Configuration对象框,在这里选择相应的Server(我这里用Tomcat6.0)和Web Service runtime(选择Apache Axis2),如下图:
(7)点OK后,则返回到Web Service对话框,同理,Client type中的滑块右边也有&Configuration&,也要进行相应的置,步骤同上。完成后,Next --& next即行。进入到Axis2 Web Service Java Bean Configuration,我们选择Generate a default services.xml,如下图所示:
(8)到了Server startup对话框,有个按键&start server&(如下图),点击它,则可启动Tomcat服务器了。
(9)等启完后,点击&next -- & next&,一切默认即行,最后,点击完成。最后,出现如下界面:(Web&Service Explorer),我们在这里便可测试我们的Web服务。(使用浏览器打开的话使用如下地址:)。如下图所示:
注:在浏览器中打开Web Service Explorer(有时候在eclipse中关闭了webservice explorer,可以用这种方法打开)
首先登录地址:。然后在网页右上角选择Web Service Exoplorer标签。然后输入WSDL地址:http://localhost:8080/WebServiceTest1/services/CalculateService?wsdl 。这个wsdl地址就是我们刚才发布服务的那个wsdl。点击go,如下图所示:
然后就可以看到如下界面了:
(10)测试比较简单,例如,我们选择一个&plus&的Operation(必须是CalculateServiceSoap11Binding),出现下图,在x的输入框中输入1,在y的输入框中输入2,点击&go&,便会在status栏中显示结果3.0。其他方法的测试也类&#20284;。结果如上图所示。
2.5.CalculateService客户端调用程序
前面我们已经定义好了加减乘除的方法并将这些方法发布为服务,那么现在要做的就是调用这些服务即可。客户端调用程序如下代码所示:CalculateServiceTest.java
package edu.sjtu.webservice.
import javax.xml.namespace.QN
import org.apache.axis2.AxisF
import org.apache.axis2.addressing.EndpointR
import org.apache.axis2.client.O
import org.apache.axis2.rpc.client.RPCServiceC
public class CalculateServiceTest {
* @param args
* @throws AxisFault
public static void main(String[] args) throws AxisFault {
// TODO Auto-generated method stub
// 使用RPC方式调用WebService
RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
// 指定调用WebService的URL
EndpointReference targetEPR = new EndpointReference(
&http://localhost:8080/WebServiceTest1/services/CalculateService&);
options.setTo(targetEPR);
// 指定要调用的计算机器中的方法及WSDL文件的命名空间:edu.sjtu.webservice。
QName opAddEntry = new QName(&http://webservice.sjtu.edu&,&plus&);//加法
QName opAddEntryminus = new QName(&http://webservice.sjtu.edu&,&minus&);//减法
QName opAddEntrymultiply = new QName(&http://webservice.sjtu.edu&,&multiply&);//乘法
QName opAddEntrydivide = new QName(&http://webservice.sjtu.edu&,&divide&);//除法
// 指定plus方法的参数值为两个,分别是加数和被加数
Object[] opAddEntryArgs = new Object[] { 1,2 };
// 指定plus方法返回值的数据类型的Class对象
Class[] classes = new Class[] { float.class };
// 调用plus方法并输出该方法的返回值
System.out.println(serviceClient.invokeBlocking(opAddEntry,opAddEntryArgs, classes)[0]);
System.out.println(serviceClient.invokeBlocking(opAddEntryminus,opAddEntryArgs, classes)[0]);
System.out.println(serviceClient.invokeBlocking(opAddEntrymultiply,opAddEntryArgs, classes)[0]);
System.out.println(serviceClient.invokeBlocking(opAddEntrydivide,opAddEntryArgs, classes)[0]);
}运行结果:
3.实例2.HelloService
(1)首先定义服务方法,代码如下所示:
package edu.sjtu.
public class HelloService {
public String sayHelloNew() {
return &hello&;
public String sayHelloToPersonNew(String name) {
if (name == null) {
name = &nobody&;
return &hello,& +
public void updateData(String data) {
System.out.println(data + & 已更新。&);
}(2)参考实例1将这个方法发布为服务。
(3)编写客户端代码调用WebService(主要参考[5])
本文例子与其他例子最大的不同就在这里,其他例子一般需要根据刚才的服务wsdl生成客户端stub,然后通过stub来调用服务,这种方式显得比较单一,客户端必须需要stub存根才能够访问服务,很不方面。本例子的客户端不采用stub方式,而是一种实现通用的调用方式,不需要任何客户端存根即可访问服务。只需要指定对于的web servce地址、操作名、参数和函数返回类型即可。代码如下所示:
HelloServiceTest2.java
package edu.sjtu.webservice.
import javax.xml.namespace.QN
import org.apache.axis2.AxisF
import org.apache.axis2.addressing.EndpointR
import org.apache.axis2.client.O
import org.apache.axis2.rpc.client.RPCServiceC
public class HelloServiceTest2 {
private RPCServiceClient serviceC
private EndpointReference targetEPR;
public HelloServiceTest2(String endpoint) throws AxisFault {
serviceClient = new RPCServiceClient();
options = serviceClient.getOptions();
targetEPR = new EndpointReference(endpoint);
options.setTo(targetEPR);
public Object[] invokeOp(String targetNamespace, String opName,
Object[] opArgs, Class&?&[] opReturnType) throws AxisFault,
ClassNotFoundException {
// 设定操作的名称
QName opQName = new QName(targetNamespace, opName);
// 设定返回值
// Class&?&[] opReturn = new Class[] { opReturnType };
// 操作需要传入的参数已经在参数中给定,这里直接传入方法中调用
return serviceClient.invokeBlocking(opQName, opArgs, opReturnType);
* @param args
* @throws AxisFault
* @throws ClassNotFoundException
public static void main(String[] args) throws AxisFault,
ClassNotFoundException {
// TODO Auto-generated method stub
final String endPointReference = &http://localhost:8080/WebServiceTest1/services/HelloService&;
final String targetNamespace = &http://webservice.sjtu.edu&;
HelloServiceTest2 client = new HelloServiceTest2(endPointReference);
String opName = &sayHelloToPersonNew&;
Object[] opArgs = new Object[] { &My Friends& };
Class&?&[] opReturnType = new Class[] { String[].class };
Object[] response = client.invokeOp(targetNamespace, opName, opArgs,
opReturnType);
System.out.println(((String[]) response[0])[0]);
运行该程序,点击Run As-&Java application,可以看到控制台端口的输出是:Hello, My Friends,表明客户端调用成功。该例子最大的不同和优势表现在客户端的调用方式,或者说是发起服务调用的方式,虽然比起客户端stub存根的方式,代码稍多,但是这种方式统一,不需要生产stub存根代码,解决了客户端有很多类的问题。如果读者对这些代码进一步封装,我想调用方式很简单,只需要传递相关参数,这更好地说明了服务调用的优势。而且这种方式更加简单明了,一看便知具体含义。而不需要弄得stub类的一些机制。
(4)改写客户端调用服务的代码
(3)中提到的客户端应用代码写的略微有些繁杂,下面将上面的客户端调用service程序进行改写,简洁了许多。代码如下:
HelloServiceTest.java
import javax.xml.namespace.QN
import org.apache.axis2.AxisF
import org.apache.axis2.addressing.EndpointR
import org.apache.axis2.client.O
import org.apache.axis2.rpc.client.RPCServiceC
public class HelloServiceTest {
public static void main(String args[]) throws AxisFault {
// 使用RPC方式调用WebService
RPCServiceClient serviceClient = new RPCServiceClient();
Options options = serviceClient.getOptions();
// 指定调用WebService的URL
EndpointReference targetEPR = new EndpointReference(&http://localhost:8080/WebServiceTest1/services/HelloService&);
options.setTo(targetEPR);
// 指定要调用的sayHelloToPerson方法及WSDL文件的命名空间
QName opAddEntry = new QName(&http://webservice.sjtu.edu&,&sayHelloToPersonNew&);
// 指定sayHelloToPerson方法的参数值
Object[] opAddEntryArgs = new Object[] { &xuwei& };
// 指定sayHelloToPerson方法返回值的数据类型的Class对象
Class[] classes = new Class[] { String.class };
// 调用sayHelloToPerson方法并输出该方法的返回值
System.out.println(serviceClient.invokeBlocking(opAddEntry,opAddEntryArgs, classes)[0]);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1915396次
积分:17180
积分:17180
排名:第371名
原创:320篇
转载:41篇
评论:407条
(1)(18)(31)(34)(3)(11)(22)(23)(8)(13)(7)(10)(13)(12)(4)(21)(16)(5)(9)(8)(1)(39)(4)(12)(32)(3)(1)> 问题详情
求助各位,通过eclipse,在web工程中建立webservice接口,是必须新建一个webservice吗?
悬赏:50&分积分
提问人:匿名网友
发布时间:
我有更好的答案
论文写作技巧
请先输入下方的验证码查看最佳答案
图形验证:
手机号码:
验证码提交中……eclipse下开发webservice教程_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
eclipse下开发webservice教程
上传于||文档简介
&&e&#8203;c&#8203;l&#8203;i&#8203;p&#8203;s&#8203;e&#8203;下&#8203;开&#8203;发&#8203;w&#8203;e&#8203;b&#8203;s&#8203;e&#8203;r&#8203;v&#8203;i&#8203;c&#8203;e&#8203;教&#8203;程
阅读已结束,如果下载本文需要使用0下载券
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,查找使用更方便
还剩10页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢

我要回帖

更多关于 eclipse中webservice 的文章

 

随机推荐