用camel构建webservice
请问csdn上有没有人用camel构建过webservice 实现应用之间的数据传输
我看过apache官网上关于camel的wiki 例如和spring整合的配置等等 好像camel的project是maven的
现在我想用camel创建一个工程(maven project ? 还是 普通的java project?) 用来发布一个webservice应该怎么做呢
希望有经验的朋友能给个教程或者例子 谢谢。
[解决办法]
no
[解决办法]
如何创建和使用Web Service代理类
Web服务代理是支持.net的编程语言文件,由.net框架提供的WSDL工具自动生成。代理类不包含任何应用程序逻辑。相反,他包含关于如何传递参数和检索结果的传输逻辑,还包含Web服务中的方法及原型列表。代理类可以从任何WSDL文件创建。
可以像访问com对象一样访问Web服务。要访问Web服务,需要从本地计算机上的Web服务的WSDL文档创建代理类。.net提供了名为WSDL.exe的工具以自动生成代理类文件。下面详细说明其创建和使用过程:
1、 新建一个asp应用程序(#C)工程,工程名为TeachShow,在TeachShow工程中创建一个文件夹Charpter8,在该文件夹下创建一个新的Web服务,取名为:Computer.asmx
2、 切换到代码视图,编写下面的代码:
[WebMethod(Description="用于相加运算", EnableSession=false)]
public int Add(int a,int b)
{
return a+b;
}
[WebMethod(Description="用于相减运算", EnableSession=false)]
public int Sub(int a,int b)
{
return a+b;
}
[WebMethod(Description="用于相乘运算", EnableSession=false)]
public int Multi(int a,int b)
{
return a*b;
}
[WebMethod(Description="用于相除运算", EnableSession=false)]
public double Devide(int a,int b)
{
return Convert.ToDouble(a)/Convert.ToDouble(b);
}
3、按F5编译整个工程(这一步一定要做,如果不做第4步无法实现)
4、打开MS.net 2003的命令提示工具,输入:C:/>wsdl http://localhost/TeachShow/Charpter8/FirstAndUse/Computer.asmx /n:ComputerNameSpace,其中,ComputerNameSpace是自定义的命名空间。提示如下:
Microsoft (R) Web 服务描述语言实用工具
[Microsoft (R) .NET Framework,版本 1.1.4322.573]
Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.
正在写入文件“C:/Computer.cs”。
5、注意,此时在C:盘(其实就是命令提示符的当前目录)下生成一个和Computer.asmx相同文件名的C#源文件Computer.cs。
6、编译Computer.cs文件,在命令提示符下输入如下命令:C:/>csc /out:ComputerDll.dll /t:library /r:System.Web.Services.dll c:/Computer.cs。其中,/out:ComputerDll.dll是要输出的dll文件,/t:library是输出文件类型,/r:System.Web.Services.dll是要引用的组件,c:/Computer.cs是第4步生成的C#文件。
7、此时,将会在C:盘下生成一个叫ComputerDll.dll的文件,要使用这个文件,必须复制到TeachShow文件夹下的bin目录下。默认情况下为:C:/Inetpub/wwwroot/TeachShow/bin。
8、新建一个名为TestWSDL.aspx的WEB窗体文件,并添加一个引用,将刚才生成的ComputerDll.dll文件作为引用添加到工程中。
9、在TestWSDL.aspx窗体的Load事件中编写代码:
ComputerNameSpace.Computer com=new ComputerNameSpace.Computer();
this.Response.Write("和:"+com.Add(45,65).ToString()+" ");
this.Response.Write("减:"+com.Sub(78,900).ToString()+"");
this.Response.Write("乘:"+com.Multi(43,55).ToString()+"");
this.Response.Write("除:"+com.Devide(1000,33).ToString());
显示结果:
和:110
减:978
乘:2365
除:30.3030303030303
10、至此,程序完成。
-----------------------
直接用VS2005利用web service地址直接引用
webservice提供一个接口,供我们调用,只需调用其相应的方法,就会有数据返回,数据是以xml格式返回的.
有朋友问到:在我的blog中曾提到一些实用的Web Service,但不知道如何在vs中调用它,这里写了一个简单的教程.
希望 能有所帮助.
几个实用的Web Service地址
http://www.lemongtree.com/2006/03/28/0000307.aspx
这里我以天气预报地址:http://www.wopos.com/webservice/weather.asmx 为例来说明.
首先,我们在vs2005新建一个工程,这个工程可以是一个web工程,也可以是一个win程序.
当然,你也可以在vs2003中做下面的操作.我这里是建立的一个web工程
选取asp.net网站,然后确定 这时,vs2005会自动为我们新建一个default.aspx并已经打开了该文件
我们就在这个文件中来操作它
下一步,我们选中网站,单击右键,选择添加web引用,这样就可以引用外部的web service了,这是最关键的一步.
在下面的对话框中输入远程的web service地址,如:http://www.wopos.com/webservice/weather.asmx
再点击"前往",vs会自动搜索该web service上的所有方法
web引用名相当于Namespace,你可以作更改,也可以用默认的,一般默认的引用名是域名的反写,vs还会告诉我们在这里找到了多少个方法 等有用的信息
然后单击"添加引用",这时我们的工程下就会多出一个名为"App_WebReferences"的目录(vs2003下可能会有所不同),
这时,表明我们已经引用了外部的web service,我们在代码区可以像使用一般的类那样来调用它.现在转到代码区 当我敲入com时,vs已经提示我了
创建一个Weather类的实例,然后调用getWeather(string city)方法就行了
最终的代码
protected void Page_Load(object sender, EventArgs e)
{
com.wopos.www.Weather service = new com.wopos.www.Weather();
Response.Write(service.getWeather("武汉"));
}
现在编译预览
OK!已经取到数据了,但格式并不是我们需要的,所以需要进一步处理,如何处理,请大家参考"几个实用的Web Service"中的相关说明,这里就不多说了.
由此可见,调用一个web service是非常简单的,但是,如果远程的web service的地址做了更改,或是改变了方法名,那我们的web service就要重新引用了并编译了, 所以最好是把方法名和service URL写在配置文件中,这样就方便多了.
文章出自:http://blog.csdn.net/camel0564/article/details/2762402
[解决办法]
又一次悲剧了!