Silverlight访问Apache服务器(Tomcat,Geronimo)中部署的Webservice

  开发环境

  Vs2010 、 Silverlight4 、 Java Jdk1.6 U 21 、 Apache-tomcat-6.0.20 、 Myeclipse8.5 、 Apache-ant-1.8.1 、 Axis2 、 Geronimo-tomcat6-javaee5-2.2

  下载地址:

  Apache-tomcat : http://apache.ziply.com/tomcat/

  Apache-ant   : http://apache.ziply.com/ant/

  Axis2 : http://apache.ziply.com/ws/axis2/

  Geronimo-tomcat : http://apache.ziply.com/geronimo/

  编写 Webservice

  其实就是写个 java class ,步骤如下:

  1、 使用 Myeclipse 新建个 java project

  2、 在工程的 src 目录下新建个 java class (注:没有用 package ) SlWebServiceHelloWorld.java ,内容如下:

  3、 找到这个 SlWebServiceHelloWorld 的 class 文件 ,发布的时候有用。

  SlWebServiceHelloWorld.javapublic class SlWebServiceHelloWorld {

/**

* Webservice 业务方法

*

* @return " XXX , Hello World!"

*/

public String sayHelloWorld(String name) {

return name + ", Hello World!" ;

}  生成 Axis2

  Axis2 是一套崭新的 WebService 引擎,该版本是对 Axis1.x 重新设计的产物。 Axis2 不仅支持 SOAP1.1 和 SOAP1.2 ,还集成了非常流行的 REST WebService ,同时还支持 Spring 、 JSON 等技术。我们直接使用现成的 Axis2 War 文件。

  1、  将 下载好的 axis2-1.5.1 和   apache-ant-1.8.1 解压。

  2、  通过 运行 , 进入 axis2-1.5.1\webapp 文件夹下

  3、  配置好 Ant!

  set ANT_HOME= D:\ apache-ant-1.8.1   (Ant 解压的路径 )

  set PATH=%ANT_HOME%\bin

  4、  打开 axis2-1.5.1\webapp\WEB-INF , 在文件夹下新建个 名为 pojo 的文件夹,把SlWebServiceHelloWorld.class (上步编写好 java 类的 Class 文件) 粘帖到这:

  5、  运行 ant 命令   , 自动在上级添加 dist 文件夹 ,生成 axis2.war。

  6、  打开 axis2-1.5.1\dist 文件夹, 你会发现已经有 axis2.war 存在。

  发布 Axis2

  众所周知,若要允许 Silverlight 控件访问其他域上的服务,该服务必须明确选择允许跨域访问。 Silverlight 4 支持两种不同的机制供服务选择跨域访问:

  在承载服务的域的根目录中放置一个 clientaccesspolicy.xml 文件,以配置服务允许跨域访问。

  在承载服务的域的根目录中放置一个有效的 crossdomain.xml 文件。

  我们这边使用的是 clientaccesspolicy.xml 。内容如下:

  clientaccesspolicy.xml<?xml version="1.0" encoding="utf-8"?>

<access-policy>

<cross-domain-access>

<policy>

<allow-from http-request-headers="SOAPAction">

<domain uri="*"/>

</allow-from>

<grant-to>

<resource path="/" include-subpaths="true"/>

</grant-to>

</policy>

</cross-domain-access>

</access-policy>  (1) 使用 
Tomcat 发布

  1 、把clientaccesspolicy.xml 放在apache-tomcat-6.0.20\webapps\ROOT 下。

  2 、把 axis2.war 文件 复制 粘帖到 Tomcat 的 webapps   文件夹下: apache-tomcat-6.0.20\webapps\axis2.war

  1、 启动 Tomcat ( apache-tomcat-6.0.20\bin\startup.bat )

  2、 在浏览器中输入: http://localhost:8080/axis2/services/listServices   结果如下:

  你会发现有你部署上的 SlWebServiceHelloWorld 。

  3、 点击页面中的 SlWebServiceHelloWorld ,你能看见 部署的 webservice  结果如下:

  4、 测试你的 webservice 运行

  http://localhost:8080/axis2/services/SlWebServiceHelloWorld/sayHelloWorld?name=” Sweet ”

  结果如下:

  恭喜你, webservice 部署 ok !

  (2)使用 Geronimo 发布

  1、 把 clientaccesspolicy.xml 放在 geronimo-tomcat6-javaee5-2.2\repository\org\apache\geronimo\configs\welcome-tomcat\2.2\welcome-tomcat-2.2.car 下 。

  2、 运行 Geronimo 服务,并登陆后台http://localhost:8080/console/portal/Welcome。

  UserName:system

  PassWord :manager

  3、 点击“ 部署新应用” 部署 Axis2.war。

  4、部署成功 点击“ web 应用程序”, 在浏览器中运行 http://localhost:8080/axis2/services/listServices。

  效果如下:

  和 Tomcat 一样 ,你会发现有你部署上的 SlWebServiceHelloWorld 。

  5、 点击页面中的 SlWebServiceHelloWorld ,你能看见 部署的 webservice  结果如下:

  和 Tomcat 部署一样。

  6、 测试下运行的 webservice,http://localhost:8080/axis2/services/SlWebServiceHelloWorld/sayHelloWorld?name="Geronimo "。

  因为 Tomcat 和 Geronimo 部署的项目都一样 , 所以 效果都一样。

  Silverlight 测试 Webservice

  1、  新建个 silverlight 项目 ,命名为: SlApacheWebServiceTest

  2、  Add  Service Reference ,填入http://localhost:8081/axis2/services/SlWebServiceHelloWorld?wsdl。

  命名为: ApacheSR   如下:

  3、  设计界面,编写方法。 因为用于测试,所以界面 比较随便。效果如下:

  左边文本框填入信息,右边文本框接收信息。

  Xaml< UserControl x : Class ="SlApacheWebServiceTest.Main
Page"

xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns : x ="http://schemas.microsoft.com/winfx/2006/xaml"

xmlns : d ="http://schemas.microsoft.com/expression/blend/2008"

xmlns : mc ="http://schemas.openxmlformats.org/markup-compatibility/2006"

mc : Ignorable ="d"

d : DesignHeight ="300" d : DesignW
idth ="800">

< Grid >

< TextBox x : Name ="tbName"

Height ="79"

Width ="200"

Margin ="131,81,469,139" />

< Button x : Name ="btnSend"

Content =" 获 ? 取 ¨? 信 ? 息 ¡é"

Height ="100"

Width ="450"

Click ="btnSend_Click"

Margin ="131,167,205,33" />

< TextBox x : Name ="tbMessage"

Height ="79"

Width ="200"

Margin ="395,81,205,139" />

</ Grid >

</ UserControl >  Csnamespace SlApacheWebServiceTest

{

public partial class MainPage : UserControl

{

public MainPage()

{

InitializeComponent();

}

private void btnSend_Click(object sender, RoutedEventArgs e)

{

ApacheSR.SlWebServiceHelloWorldPortType
Client ws = new ApacheSR.SlWebServiceHelloWorldPortTypeClient ();

ws.sayHelloWorldAsync(tbName.Text.Trim());

ws.sayHelloWorldCompleted += new EventHandler <ApacheSR.sayHelloWorldCompletedEventArgs >(ws_sayHelloWorldCompleted);

}

void ws_sayHelloWorldCompleted(object sender, ApacheSR.sayHelloWorldCompletedEventArgs e) {

tbMessage.Text = e.Result.ToString();

}

}

}

  4、  F5 运行,输入 Sweet , 得到结果 Sweet, Hello World! 。 效果如下:

  测试 Pass !

  (注意:我使用的 Tomcat 端口为 8081 ,大家注意自己的端口!

  跨域文件 clientaccesspolicy.xml 的路径:

  Tomcat : apache-tomcat-6.0.20\webapps\ROOT

  Geronimo :geronimo-tomcat6-javaee5-2.2\repository\org\apache\geronimo\configs\welcome-tomcat\2.2\welcome-tomcat-2.2.car  )

时间: 2024-11-01 17:37:48

Silverlight访问Apache服务器(Tomcat,Geronimo)中部署的Webservice的相关文章

一起谈.NET技术,Silverlight访问Apache服务器(Tomcat,Geronimo)中部署的Webservice

开发环境 Vs2010 . Silverlight4 . Java Jdk1.6 U 21 . Apache-tomcat-6.0.20 . Myeclipse8.5 . Apache-ant-1.8.1 . Axis2 . Geronimo-tomcat6-javaee5-2.2 下载地址: Apache-tomcat : http://apache.ziply.com/tomcat/ Apache-ant   : http://apache.ziply.com/ant/ Axis2 : ht

无法访问远程服务器tomcat中的images文件夹

问题描述 无法访问远程服务器tomcat中的images文件夹 在本地可以访问这个文件夹的!但是在远程服务器上就显示错误!!!求大神指点啊!!

在Apache Geronimo中部署Web服务

要确定某个应用服务器是否支持 Web 服务开发工作吗?Apache Geronimo 应 用服务器完全可以满足这一要求,它是 Apache Software Foundation 的最新项 目之一.Java 专家 Kunal Mittal 将通过演示如何在 Geronimo 中编写 和开发标准 J2EE Web 服务代码,向您介绍 Geronimo 的 Web 服务功能.您将学 会如何根据底层简单对象访问协议(SOAP)实现使用 Apache Axis,从而使用 Amazon Web 服务,并且

Apache 与tomcat实现分布式应用部署

一:原理 tomcat是一个web应用服务器,能够解析静态文件和动态文件(如:html.jsp.servlet等):apache是一个web server,能够解析静态文件.Tomcat作为一个独立的web服务器是可以使用的,但是它对静态文件的解析能力不如apache,所以就产生现在的web应用的分布式部署,apache+tomcat. 两者之间的通信通过workers配置(由tomcat使用Server.xml中的Connector标签定义端口port和协议protocol,workers.p

wcf服务部署到服务器iis上主服务器死机或者坏了,可不可以不改动客户端,访问副服务器iis

问题描述 wcf服务部署到服务器iis上主服务器死机或者坏了,可不可以不改动客户端,访问副服务器iis wcf服务部署到服务器iis上,如果主服务器死机或者坏了,怎么通过最小代价通过副服务器访问 注,客户端的映射地址都是主服务器地址 解决方案 通过域名访问服务器,修改dns指向另一个服务器. 解决方案二: WCF部署到IIS服务器 解决方案三: 服务器前面再加个负载均衡,这样主服务器挂了,会自动帮你切换到副服务器.

实例学习Apache服务器的安全防护知识

Apache 一直是世界上使用率排名前三的 Web 服务器软件.企业使用其构建 Web 应用,从很大程度上都需要对其安全性进行综合考虑,以保证能够应对拒绝服务攻击.流量窃听.数据泄漏等网络威胁,从而保证企业门户网站的安全.除了使用业界流行的防火墙.IDS/IPS(入侵检测系统 / 入侵防御系统).WAF(Web 应用防火墙).UTM(统一威胁管理)等外部安全设备对 Apache 服务进行安全防护外,作为一种优秀的开源服务器软件,Apache 本身就具有很多优秀的特性可以为服务器管理员提供安全配置

如何配置 fail2ban 来保护 Apache 服务器

如何配置 fail2ban 来保护 Apache 服务器 生产环境中的 Apache 服务器可能会受到不同的攻击.攻击者或许试图通过暴力攻击或者执行恶意脚本来获取未经授权或者禁止访问的目录.一些恶意爬虫或许会扫描你网站下的各种安全漏洞,或者通过收集email地址和web表单来发送垃圾邮件. Apache服务器具有全面的日志功能,可以捕捉到各种攻击所反映的异常事件.然而,它还不能系统地解析具体的apache 日志并迅速地对潜在的攻击进行反应(比如,禁止/解禁IP地址).这时候fail2ban可以解

tomcat集群-为什么apache+tomcat搭建的负载均衡服务器集群在部署项目访问请求获取不到数据

问题描述 为什么apache+tomcat搭建的负载均衡服务器集群在部署项目访问请求获取不到数据 为什么apache+tomcat搭建的负载均衡服务器集群在部署项目后的项目路径不对呢,请求获取不到数据我是将项目设置在tomcat的根目录访问路径,输入localhost:8080即可访问到项目的首页,显示正常.Apache弄的是IP访问嘛,通过控制分配请求给集群下的tomcat服务器来访问项目,但是直接使用IP访问请求都获取不到数据,尝试通过IP/项目名也达不到效果.这是什么原因呢. 我当时是按照

服务器-tomcat在eclipse中怎么部署项目,且浏览器访问的url是根据什么决定的

问题描述 tomcat在eclipse中怎么部署项目,且浏览器访问的url是根据什么决定的 如题,是怎么部署的,哪些是必须要修改的参数,且分别代表什么,eclipse里点了那个三角形的启动按钮后,tomcat还用运行startup.bat吗?最重要的一点:发布成功后,浏览器应该访问的url在哪找? 解决方案 在eclipse中点击run servers后选择tomcat便可以部署了:访问路径:localhost:8080/项目名/文件名 解决方案二: 集成到Eclips后不需要点startup.