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

Silverlight 访问 Apache服务器中的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.java

public 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 文件夹下

2010112614242165.gif

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 文件) 粘帖到这

2010112614245894.gif

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

2010112614252927.gif

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

2010112614260194.gif

发布 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 发布

、把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   结果如下:

2010112614264695.gif

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

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

2010112614272297.gif

4、 测试你的 webservice 运行

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

结果如下:

2010112614275812.gif

恭喜你, 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

2010112614283031.gif

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

效果如下:

2010112614295650.gif

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

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

2010112614303212.gif

和 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   如下:

2010112614310765.gif

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

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

2010112614314037.gif

Xaml

< UserControl x : Class ="SlApacheWebServiceTest.MainPage"

     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 : DesignWidth ="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 >

Cs

namespace SlApacheWebServiceTest

{

    public partial class MainPage : UserControl

    {

        public MainPage()

        {

            InitializeComponent();

        }

        private void btnSend_Click(object sender, RoutedEventArgs e)

        {

            ApacheSR.SlWebServiceHelloWorldPortTypeClient 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! 。 效果如下:

2010112614322190.gif

测试 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  

转载于:https://www.cnblogs.com/luxiaofeng54/archive/2010/11/26/1888749.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/378814.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

那些帮助你成为优秀前端工程师的讲座——《性能篇》

这篇文章是前端优秀讲座和讨论列表系列连载第七篇&#xff0c;介绍前端性能优化技巧。前端领域发展迅速&#xff0c;只有时刻掌握前端发展趋势和技术动态&#xff0c;学习前沿的开发思想和理念才能让自己跟上时代的步伐&#xff0c;保持自己的技术优势。 您可能感兴趣的相关文章…

mca终端_MCA的完整形式是什么?

mca终端1)MCA&#xff1a;计算机应用硕士 (1) MCA: Master of Computer Application) MCA is an abbreviation of Master of Computer Application. It is a masters degree program for post-graduation in Computer applications. This post-graduate course duration is abo…

查看照片的指定位置的像素点值,并在照片中绘制一条指定像素颜色的线段

查看照片的指定位置的像素点值&#xff0c;并在照片中绘制一条指定像素的线段 import cv2 img cv2.imread(E:\Python-workspace\OpenCV\yanyu/beyond.png,1)#1为彩色图片&#xff0c;0为灰度图片 (b,g,r) img[20,20]#取照片的(20,20)处的像素点&#xff0c;左上角为(0,0)&am…

图像分割-二阶导数零交叉点的含义

已知&#xff1a; 二阶导数在灰度斜坡和灰度台阶过渡处会产生双边缘响应。 二阶导数的符号可以用于确定边缘的过渡是从亮到暗还是暗到亮。 斜坡开始处&#xff0c;二阶导数为负&#xff0c;斜坡结束二阶导数为正&#xff0c;斜坡上&#xff0c;二阶导数为0.&#xff08;亮到暗…

采购子系统-流程图、表结构、内容简介

设计说明&#xff1a; 流程图&#xff1a; 表结构&#xff1a; -- {*******************************************************} -- { } -- { GSP } -- { …

Anaconda下安装TensorFlow和OpenCV(都是心血呀~)

从国庆放假到现在的6号&#xff0c;我整整搞了将近五天多。安装个TensorFlow和OpenCV不下五次&#xff0c;各种问题各种解决&#xff0c;下载后卸载&#xff0c;卸载后下载&#xff0c;我快吐了啊这个国庆&#xff0c;但是最终还是达到了自己的目标&#xff08;我太难了&#x…

图像分割-基本边缘检测roberts,prewitt,sobel,canny,laplace

执行边缘检测的三个基本步骤&#xff1a; 1、为降噪对图像进行平滑处理。&#xff08;导数对噪声具有敏感性。图像的正负分量检测困难&#xff09; 2、边缘点的检测。&#xff08;提取边缘点的潜在候选者&#xff09; 3、边缘定位。&#xff08;从候选者中选出真是边缘点成员&a…

改变Jupyter的默认项目路径

开始接触Jupyter&#xff0c;看见它默认的工作路径是C盘&#xff0c;很难受想换下工作空间路径 管理员身份打开你的Anaconda Prompt 输入jupyter notebook --generate-config&#xff0c;找到你的配置文件位置 修改一下路径即可 一般情况到这一步就已经修改成功了&#xff…

图像分割-LOG检测器和DOG检测器

边缘检测是以较小的算子为基础的&#xff0c;具有两个建议 1、灰度变化与图像尺寸无关&#xff0c;因此检测要求使用不同尺寸的算子。 2、灰度的突然变化会在一阶导数产生波峰波谷&#xff0c;在二阶导数产生零交叉 大的算子检测模糊边缘&#xff0c;小的算子检测锐度集中的细节…

C++——统计多行单个字符类型个数

键盘输入n个字符&#xff0c;请分别统计大写字母、小写字母、数字、其他字符的个数并输出&#xff1b;还需要输出所有数字字符之和 【输入形式】 第一行为一个整数n(100 > n > 0)&#xff0c;接下来n行每行一个字符 【输出形式】 输出第1行为4个整数&#xff0c;分别…

C++——已知a+b、 a+c、b+c、 a+b+c,求a、b、 c

有三个非负整数a、b、 C,现按随机顺序给出它们的两两和以及总和4个整数&#xff0c;即ab、 ac、bc、 abc, 注意,给出的4个数的顺序是随机的&#xff0c;请根据这四个数求出a、b、c是多少? [输入形式] 输入为一-行4个正整数, x1、 x2、x3、 x4 (0≤xi≤10^9) &#xff0c;表示…

表示和描述-边界追踪

边界追踪目标&#xff1a; 输入&#xff1a;某一区域的点 输出&#xff1a;这一区域的点的坐标序列&#xff08;顺时针或逆时针&#xff09; Moore边界追踪法&#xff1a; 两个前提条件&#xff1a; 1、图像为二值化后的图像&#xff08;目标为1&#xff0c;背景为0&#xff0…

图像分割-边缘连接

三种基本方法&#xff1a; 1&#xff1a;局部处理 2&#xff1a;区域处理 3&#xff1a;使用霍夫变换的全局处理 局部处理 根据预定的规则&#xff0c;将所有相似点连接起来。 用于确定边缘像素相似性的两个主要性质&#xff1a;1、梯度向量的幅度2、梯度向量的角度 由于要…

02-对图像进行边界填充

import cv2 import matplotlib.pyplot as pltimg2 cv2.imread("E:\Jupyter_workspace\study\data/cat.png")#读取照片&#xff0c;第二个参数若为0&#xff0c;则灰度图&#xff1b;若不填或者1则彩色图或本身图top_size,bottom_size,left_size,right_size (50,50,…

Windows Phone 7独立存储空间IsolatedStorage

Windows Phone 7的solatedStorage可以用来保存应用程序的数据和设置。结构图如下 一、相关类 1.IsolatedStorageFile类 1&#xff09;描述&#xff1a;表示在独立存储空间中的文件和目录。 2&#xff09;重要属性 long AvailableFreeSpace&#xff1a;IsolatedStorage有效的剩余…

图像分割-阈值处理详解(迭代法、Otsu法、平滑改善法、边缘改进法、分块处理法、局部特性法、移动平均法)

博主联系方式&#xff1a; QQ:1540984562 QQ交流群&#xff1a;892023501 群里会有往届的smarters和电赛选手&#xff0c;群里也会不时分享一些有用的资料&#xff0c;有问题可以在群里多问问。 阈值处理详解基础&#xff1a;基于全局的阈值处理1迭代算法&#xff08;最小概率误…

java 用户控件_C#自定义控件VS用户控件

C#中自定义控件VS用户控件大比拼1 自定义控件与用户控件区别WinForm中&#xff0c;用户控件(User Control)&#xff1a;继承自 UserControl&#xff0c;主要用于开发 Container 控件&#xff0c;Container控件可以添加其他Controls控件自定义控件(Custom Control)&#xff1a;继…

SQL Server存储过程(procedure)应用

用户反映&#xff0c;系统操作日志会使用数据库快速增大&#xff0c;情况可参考下图&#xff0c; 问题分析&#xff0c;整个系统每个页面&#xff0c;都有写记录用户操作代码&#xff0c;修改或禁用这个代码&#xff0c;看来是不可能的。 在原有系统参数表添加一个选项&#xf…

Opencv一维直方图的绘制

下面是我参考《opencv3编程入门》写的绘制一维直方图的代码 using namespace cv; using namespace std; #define byte uchar #define TYEPE_GRAY 0 #define TYEPE_RGB 1 /*--------------------------绘制RGB三色一维直方图-------------------------------------*/ Mat My_R…