当前位置:文档之家› 用axis2+Tomcat5.5+MyEclipse7.5部署和访问Web服务

用axis2+Tomcat5.5+MyEclipse7.5部署和访问Web服务

用axis2+Tomcat5.5+MyEclipse7.5部署和访问Web服务
用axis2+Tomcat5.5+MyEclipse7.5部署和访问Web服务

用axis2+Tomcat5.5+MyEclipse7.5部署和访问Web服务

-------Sunny 20101208

一、环境准备

1.1软件下载准备

Axis Eclipse plug-in(代码生成工具和打包工具): Axis2_Codegen_Wizard_1.3.0

Axis2_Service_Archiver_1.3.0

Axis War包: axis2-1.4-war

Tomcat: apache-tomcat-5.5.27

MyEclipse: MyEclipse7.5

1.2安装

1) 安装MyEclipse7.5。

2) 将下载到的Axis 的两个plug-in解压缩到MyEclipse安装目录下的dropins子目录。 3)启动MyEclipse,并选择“File->New->Other”可以找到下面的这些Wizards

4)下面开始搭建Web Services的部署环境。将下载的tomcat报解压缩到一个目录。完成web container 的安装。

5)将axis2.war包拷贝到tomcat安装目录下的webapps目录中。

axis2-1.4-war.zip解压完后出现axis2.war,将其后缀改为rar后继续解压,并将解压后的3个文件复制到webapps目录axis2子目录下。

6)启动Tomcat(windows 下为TOMCA_HOME/bin中的startup.bat;Linux,unix环境为startup.sh文件),打开浏览器输入并访问:http://ip:8080/axis2(或2http://localhost:8080/axis)来查看,如果能看到下面的页面则说明已经安装完成。

二、进入开发

2.1 建立要发布的WebService

1)在MyEclispse中添加一个用户库命名为axis2,将axis2\WEB-INF\lib下的包均添加进来,然后建立一个JavaProject命名为AccountService,将axis2用户库加入到build path中。

2)现在开始编写要发布的WebSevice,在src中建包account,建立AccountOper类如下:

package account;

public class AccountOper {

private static int[] fund = {10000, 500, 700, 5800};

public static int accountID = 0;//in {0,1,2}

public boolean setAccountID( int id ) {

if(id < 0 || id > fund.length)

return false;

this.accountID = id;

return true;

}

public boolean checkInput(int money) {

if (money > fund[accountID]) {

return false;

} else {

return true;

}

}

return fund[accountID];

}

//withdraw

public int withdraw(int money) {

if (checkInput(money)) {

fund[accountID] = fund[accountID] - money;

}

return fund[accountID];

}

public int getAccount() {

return fund[accountID];

}

}

//deposit

public int deposit(int money) {

fund[accountID] = fund[accountID] + money;

}

return fund[accountID];

}

public int getAccount() {

return fund[accountID];

}

}

2.2发布WebService

1)打包要发布的Service,Eclipse中New --> File --> Other --> Axis2 wizards --> Axis2 Services Archiver,按照向导选择刚建立的类编译后的class文件和services.xml文件(选择自动生成)。

这里的Class File Location路径是刚才建好的AccountOper.class文件路径

这里选择自动生成xml文件即可。

这里可以改变Service的名字。

写上文件输出位置,finish就行了。

2)将sunny_service.aar拷贝到Tomcat 5.5\webapps\axis2\WEB-INF\services目录下,重新打开http://localhost:8080/axis2/services/listService就会发现AccountService已经发布成功,现在就可以应用这个Web服务了。

这里有Sunny这个服务。

2.3测试

1)生成WSDL文件

Account.AccountOper的class文件的路径是D:\sunny—workspace\AccountService\bin

2)通过WSDL文件生成AccountServiceCallbackHandler.java和AccountServiceStub.java

参数不变

注意下输出的路径

3)在工程目录按F5刷新,就可以看到刚生成的文件,但提示都有错误,这是因为包名不一样。解决方法是将生成的两个文件直接移动到account包下,如图:

4)编写服务测试程序AccountTest.java如下:

package account;

public class AccountTest {

public static void main(String[] args) throws Exception {

// TODO Auto-generated method stub

String endpoint = "http://localhost:8080/axis2/services/Sunny";

AccountOperStub stub = new AccountOperStub(endpoint);

AccountOperStub.SetAccountID set = new

AccountOperStub.SetAccountID();

set.setId( 2 );

stub.setAccountID( set );

AccountOperStub.GetAccountResponse get = stub.getAccount();

System.out.println( "Current: " + get.get_return() );

AccountOperStub.Deposit dep = new AccountOperStub.Deposit();

dep.setMoney( 120 );

AccountOperStub.DepositResponse depRes = stub.deposit( dep );

System.out.println( "After Deposit 120: "+ depRes.get_return());

AccountOperStub.Withdraw draw = new AccountOperStub.Withdraw();

draw.setMoney( 50 );

AccountOperStub.WithdrawResponse drawRes = stub.withdraw( draw );

System.out.println( "After Withdraw 50: " +

drawRes.get_return());

AccountOperStub.GetAccountResponse getLast = stub.getAccount();

System.err.println( "At last: " + getLast.get_return() );

}

}

运行结果如下:

测试成功!但是不理想的是有两个警告。

三、在局域网其他客户机调用

以下介绍在局域网客户端调用上面发布的AccountService。为了不受杀毒软件及防火墙的影响,测试

时我们把杀毒软件及防火墙关闭。

1)新建一个web project

2)New --> File --> Other --> Axis2 wizards --> Axis2 Code Generator,按下一步

注意路径是在web project的工程下src子目录中。

3)刷新一下项目,就可以看到刚生成的客户端文件了,SunnyStub.java和SunnyCallbackHandler.java,但都有错误,这是生成的包名的问题,改一下:把包名src.account改成account就行了。

4)写测试类

package account;

public class AccountTest {

public static void main(String[] args) throws Exception { // TODO Auto-generated method stub

String endpoint = "http://localhost:8080/axis2/services/Sunny";

SunnyStub stub = new SunnyStub(endpoint);

SunnyStub.SetAccountID set = new SunnyStub.SetAccountID();

set.setId( 2 );

stub.setAccountID( set );

SunnyStub.GetAccountResponse get = stub.getAccount();

System.out.println( "Current: " + get.get_return() );

SunnyStub.Deposit dep = new SunnyStub.Deposit();

dep.setMoney( 120 );

SunnyStub.DepositResponse depRes = stub.deposit( dep );

System.out.println( "After Deposit 120: "+ depRes.get_return());

SunnyStub.Withdraw draw = new SunnyStub.Withdraw();

draw.setMoney( 50 );

SunnyStub.WithdrawResponse drawRes = stub.withdraw( draw );

System.out.println( "After Withdraw 50: " +

drawRes.get_return());

SunnyStub.GetAccountResponse getLast = stub.getAccount();

System.err.println( "At last: " + getLast.get_return() );

}

}

运行结果:

和在本机测试一样,调用成功!(每次运行前要初始化的,重开Tomcat)

网页自动跳转代码

某网页网址变更以后,为方便不知道网址变更的朋友访问,可让原来的网页自动跳转到新的网址,代码如下: 一、普通HTML页面的跳转代码: 1. 说明: 1、上面的代码,放在网页头部的“”上面; 2、数字5,是5秒以后自动跳转,可自己按照需要设置; 3、网址https://www.doczj.com/doc/434801316.html,,就是自动跳转到的新的网址。 4.网页需要加载完毕后才能跳转。 2.利用Javascript语言 说明: 本代码是网页一打开就直接跳转到https://www.doczj.com/doc/434801316.html,/rr91上面去了! 二、PHP跳转代码: 三、ASP跳转代码: <% 'asp 自带 Response.Redirect("https://www.doczj.com/doc/434801316.html,/rr91") %> 自动转向,也叫自动重定向。自动跳转,指当访问用户登陆到某网站时,自动将用户转向其它网页地址的一种技术。转向的网页地址可以是网站内的其它网页,也可以是其它网站。通常情况下,浏览器会收到一个网页,该页面含有自动加载一其它网页的代码。该页面有可能在服务器端被转换,这样的话,浏览器只收到一个页面,而自动转向往往意味着浏览器收到的页面具有自动将访问用户送至其它页面的功能。 对自动转向技术的合理应用包括:将用户转向到指定浏览器的网页版本;当网站的域名变更或删除后将人们转向到新域名下,等等。但现在这种技术却往往被搜索引擎优化人士用来作为提高网站的搜索引擎排名的一种手段。例如,先专门针对搜索引擎做一个高度优化的网页,也就是我们通常所说的“桥页”,然后把这个网页提交给搜索引擎来获得好的排名。

加入域工具常见问题

加入域工具常见问题 1、未知省份错误 工具出现如上图所示提示框的原因是由于用户没有归属省份,请与工程师联系修正此错误。 2、终端加入域问题及解决 01、终端加入域报2698错误 故障处理: 2698错误基础信息是:此版本的Windows不能加入到域。一般此错误是由于用户尝试在WinXP HOME版上执行加入域造成。目前无法加入域。 请重新安装商业版的操作系统,有关商业版的安装介质和使用许可请与系统管理员联系。 02、终端加入域报1231错误 故障处理: 1231错误基础信息是:无法访问网络。一般此错误是由某个必须启动的服务没有成功启动造成的。终端加入域前应检查TCP/IP NetBIOS Helper服务是否启动, TCP/IP NetBIOS Helper服务必须启动。 03、终端加入域后无法在桌面创建文件 故障处理: 由于终端的Profile权限没有被赋予完全控制权限。请重新配置用户Profile 的权限,将权限配置为完全控制权限。然后退出域,重新加入域。 04、终端加入域后,域帐号登录无法看到原用户桌面图标等用户配置文件项 故障处理: 由于终端的Profile权限没有被赋予完全控制权限。请浏览到C:\document and

settings\,右键点选当前本机用户profile的文件夹,选择“属性”,在文件夹属性对话框中选择“安全”标签页,将本机administrators组添加为完全控制权限。 05、终端加入域后,终端用户帐号被锁定,无法登录域 故障处理: 由于终端帐号被服务器锁定,所以无法登录到域请终端部署人员联系终端部署管理人员通过工具修改,或在服务器上解除相应帐号的被锁定状态。 06、终端加入域时报系统不支持加入商业网络 故障处理: 这是产品的本身功能限制问题,WindowsXP Home版与Windows Me这部分操作系统属于家庭版,目前无法加入商业网络。 重新安装商业版的操作系统,有关商业版的安装介质和使用许可请与系统管理员联系。 07、终端加入域时报不能定位域控制器,请更新DnsHostName和ServicePrincipalName 故障处理: 由于DNS解析有误,请检查计算机的DNS配置和WINS配置是否正确,如果是DHCP的客户端,请在控制台窗口(在运行栏中输入cmd命令)中运行ipconfig/all命令,查看结果是否正确: DNS: WINS:如果配置正确,但问题则可能因为暂时的网络条件恶化,请换时间重新尝试。 如果以上两个方法都无法排除问题,请联系信息员或IT支持人员。 08、终端加入域后,原先安装的一些软件无法正常运行 故障处理: 由于部分软件采用安装时绑定计算机名或Netbios更换计算机名称后需要重新安装该软件。否则无法正常运行如果重新安装有困难,则建议不要更改计算机名称,直接加入域。如果加入域对该应用软件有影响,则建议不要加入域,不将此终端包含在本次工程范围内。

torque中文教程--AI巡逻

教程: 为机器人设定路径 作者:吴波 描述:这个教程演示如何生成机器人或者AI控制的玩家,使他们可以在任务编辑器中沿着一定的路线活动。这个功能非常的重要,可以通过这个功能让机器人可以在一定的范围内巡逻或守卫,当发现人类玩家的时候进行攻击。 注意:本教程所用的”bot.cs”文件中的编码是从”starter.fps”示例文件夹”aiPlayer.cs”中节选的,建议你从这个教程开始熟悉机器人(BOT)的一些控制语句。 1.开始之前,还是对"tutorial.base" 目录进行备份, 以防数据出错。 2.从素材路径中复制 "bot.cs" 文件到 "tutorial.base/server" 目录下。 3.打开"tutorial.base/server" 目录下的 "game.cs" 脚本文件并在onServerCreated() function语句下加入: exec("./bot.cs");

你应该看到几句其他的exec()语句存在于此文件中,把上面的这句放到最后一行就可以了。 除了定义我们的机器人如何沿着给定的路径活动外, "bot.cs"脚本还定义了一个特殊的物体叫做AIManager(AI 管理器),它是用来管理所有的机器人的各种活动的,为了实现这个目的,我们需要在执行onMissionLoaded()(任务开始)和onMissionEnded()(任务结束)功能时,通过增加一些代码来开始和停止它的作用。 填加高亮部分语句到onMissionLoaded() function下: function onMissionLoaded() { // Called by loadMission() once the mission is finished loading. new ScriptObject(AIManager) {}; MissionCleanup.add(AIManager); AIManager.think(); } 接下来,我们需要填加以下代码到onMissionEnded()功能下以便在游戏结束时删除AI管理器。 function onMissionEnded() { // Called by endMissio n(), right befo re the missio n is destroyed AIManager.delete(); }

40个经典网页代码

40个经典网页代码 1. oncontextmenu="" 将彻底屏蔽鼠标右键

no
可用于Table 2. 取消选取、防止复制 3. onpaste="return false" 不准粘贴 4. oncopy="return false;" oncut="return false;" 防止复制 5. IE地址栏前换成自己的图标 6. 可以在收藏夹中显示出你的图标 7. 关闭输入法 8. 永远都会带着框架 NEW-->Team,后边的一看就会,不说了。 1、DNS设置不正确的问题 安装活动目录,就在选择DNS的时候,忘了选择了什么选项,像是本机什么什么的。反正就是没有设置DNS就过去了。后来也证明,DNS服务器没有正常启动。 打开DNS服务器,开启DNS服务,看了看正向搜索区域,里边有https://www.doczj.com/doc/434801316.html, -->192.168.0.1的项,应该正常吧。网上顺便看了看MX记录的问题,发觉DNS服务器有很多类型,但是WIN2003的DNS没有这样的记录类型(比如主机类型,TXT类型,邮箱或通信信息),微软真菜,盖子的决心不够啊!^_^

打开XP虚拟机,将他加入域的时候,发觉只能用NETBIOS名称加入域,而不能用完整域名加入。提示: Note: This information is intended for a network administrator. If you are not your network's administrator, notify the administrator that you received this information, which has been recorded in the file C:\WINDOWS\debug\dcdiag.txt. The following error occurred when DNS was queried for the service location (SRV) resource record used to locate a domain controller for domain https://www.doczj.com/doc/434801316.html,: The error was: "DNS name does not exist." (error code 0x0000232B RCODE_NAME_ERROR) The query was for the SRV record for _ldap._tcp.dc._https://www.doczj.com/doc/434801316.html, Common causes of this error include the following: - The DNS SRV record is not registered in DNS. - One or more of the following zones do not include delegation to its

5种常见网页自动跳转方法,搜索引擎识别度

5种常见网页自动跳转方法,搜索引擎识别度 网页自动跳转,是指当用户访问某个网页时,被自动跳转到另一个网页中去。网页自动跳转的主要作用是,当域名变更后,或者网站里的一个或多个网页被删除后,可以使用这种方式将用户引导到其它正常的网页中去,从而留住用户。 不过,现在有许多人利用网页自动跳转来进行作弊,欺骗搜索引擎,从而实现提高网站搜索引擎排名的目的。比较典型的方式是:先做一个“桥页”,当搜索引擎收录了这个桥页,并有较高排名时,桥页中再使用网页自动跳转方式,将用户引导到用户本来无意访问的其它网页中去。 下面介绍一下五种常见的网页自动跳转方法,以及搜索引擎对这些跳转方法的辨识能力。 第一种网页自动跳转方法:Meta Refresh自动跳转法 在网页的head区域的Meta Refresh标签中,加入自动跳转代码,可实现网页的立即或延时自动跳转。 示例如下: 上述html代码中的“10”是延时跳转的时间,单位是秒。如果设为0,就表示立即跳转。“http://w https://www.doczj.com/doc/434801316.html,”是跳转的目标地址,可以是同一域名下的站内相对路径,也可以是不同域名的站外地址。 由于搜索引擎能够读取HTML,所以对于这种自动跳转方法,搜索引擎是能够自动检测出来的。至是会不会被视为作弊,则主要看跳转时间。如果跳转时间为0,就可能会被视为作弊,从而受到惩罚。如果有时间延迟(一般3秒以上),就会被视为正常应用。 第二种网页自动跳转方法:body onload自动跳转法 在网页加载时通过onload事件指定parent.location进行自动跳转。 示例如下: 这种方法与第一种方法一样,能够被搜索引擎识别。 第三种网页自动跳转方法:javascript自动跳转法 javascript可以实现网页的自动跳转,如果要实现立即跳转,将跳转代码放在网页的head区域即可。 示例如下: 其中的“https://www.doczj.com/doc/434801316.html,/yule/tietu/”是重定向目标地址。 由于搜索引擎无法解析javascript,所以搜索引擎便无法识别用javascript脚本进行的自动跳转。第四种网页自动跳转方法:表单自动跳转法 对于表单大家都很熟悉,就是将表单中填写的内容,提交到action参数中指定的URL地址中,目标URL再对接收到的数据进行处理。利用这一点,我们可间接的实现网页跳转,只不过,我们并不需要提交任何表单内容。再结合javascript脚本,可以对表单进行自动提交。 示例如下:

客户端不能加入域的解决方法和步骤

客户端不能加入域?解决资料整合 加入域出现以下错误,windows无法找到网络路径,请确认网络路径正确并且目标计算机不忙或已关闭?核心提示: 在输入管理账号和密码并点击“确定”按钮后,系统却提示“找不到网络路径”,该计算机无法加入域。 故障现象:单位有一台运行Windows XP系统的办公用计算机,由于工作需要准备将它加入到已经建立好的基于Windows Server 2003系统的域中。按照正常的操作步骤进行设置,在“系统属性”的“计算机名”选项卡中加入域的时候,系统要求输入有权限将计算机加入域的用户名和密码(这表示已经找到域控制器)。然而,在输入管理账号和密码并点击“确定”按钮后,系统却提示“找不到网络路径”,该计算机无法加入域。 解决方法: 由于客户端计算机能够找到域控制,因此可以确定网络的物理连接和各种协议没有问题。此外,由于可以在该计算机上找到域控制器,说明DNS解析方面也是正常的。那为什么能找到域控制器却又提示无法找到网络路径呢?这很可能是未安装“Microsoft网络客户端”造成的。在“本地连接属性”窗口的“常规”选项卡中,确保“Microsoft网络客户端”处于选中状态,然后重新执行加入域的操作即可。 “Microsoft网络客户端”是客户端计算机加入Windows 2000域时必须具备的组件之一,利用该组件可以使本地计算机访问Microsoft网络上的资源。如果不选中该项,则本地计算机没有访问Microsoft网络的可用工具,从而导致出现找不到网络路径的提示。本例故障的解决方法启示用户,为系统安装常用的组件和协议可以避免很多网络故障的发生, 计算机本地连接自带的防火墙也应该关闭.以避免应该防火墙的问题造成无法与域控制器通信. 服务端(域控制器):Microsoft网络文件和打印共享和网络负载平衡没选择上去, 一定要选择上Microsoft网络文件和打印共享和网络负载平衡。 客户端要加入域,相关的服务要开始:

相关主题
文本预览