请问apache camel如何实现webservice的转发?

python2002 发布于 2014/03/19 20:38
阅读 5K+
收藏 3

@滄海一夢 你好,想跟你请教个问题:你好,我想实现一个webservice转发,不知道apache camel能否实现?

访问流程大概是这样的:客户端发起一个webservice请求到服务器A,A得到请求后,A向B服务器请求真实的webservice请求,最后通过A将数据返回给客户  。A服务器相当于实现一个对webservice的代理

谢谢。。。

加载中
0
vidy_tu
vidy_tu

可以的,按照你上面说的A就是个反向代理服务器的话。

Camel就没必要用Webservice了,就用servlet到http就可以了

from(servlet:///as).to(http://xxx.xxx.xxx.xxx/as?bridgeEndpoint=true)

python2002
python2002
实在抱歉,我还是没怎么明白。能具体给一段可运行的代码吗?万分感谢
0
vidy_tu
vidy_tu

Web.xml配置:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>camelproxy</display-name>
  <context-param>
		<param-name>contextConfigLocation</param-name>
		<param-value>classpath:applicationContext.xml</param-value>
	</context-param>
	<servlet>
		<servlet-name>CamelServlet</servlet-name>
		<servlet-class>
			org.apache.camel.component.servlet.CamelHttpTransportServlet
		</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
	<servlet>
		<servlet-name>SpringApplicationContext</servlet-name>
		<servlet-class>org.springframework.web.context.ContextLoaderServlet</servlet-class>
		<load-on-startup>2</load-on-startup>
	</servlet>
	<servlet-mapping>
		<servlet-name>SpringApplicationContext</servlet-name>
		<url-pattern>/sa</url-pattern>
	</servlet-mapping>
	<servlet-mapping>
		<servlet-name>CamelServlet</servlet-name>
		<url-pattern>/portal/*</url-pattern>
	</servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
</web-app>



Spring配置:applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:util="http://www.springframework.org/schema/util" xmlns:aop="http://www.springframework.org/schema/aop"
	xmlns:camel="http://camel.apache.org/schema/spring"
	xsi:schemaLocation="
	http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
	http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
	http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
	http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-2.5.xsd
	http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd
	http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd
	"
	default-lazy-init="false">
	<camel:camelContext>
		<camel:route>
			<camel:from uri="servlet:///as"></camel:from>
			<camel:to uri="http://10.0.96.179:5001?bridgeEndpoint=true"></camel:to>
		</camel:route>
	</camel:camelContext>


</beans>


jar包依赖见http://my.oschina.net/u/574870/blog/164215

版本我用的2.6.0用新版本的话,jar包依赖会少一些。

要工程的话,你把邮箱发给我

鬼之谷子
回复 @滄海一夢 : 能发我一份相关代码吗?我也在研究这个,谢谢
7
719100071
能给我发一份吗
vidy_tu
vidy_tu
回复 @python2002 : 已发
python2002
python2002
非常感谢 我邮箱是150192819@qq.com 非常感谢
0
老猫
老猫

@滄海一夢 我也有同样的问题,麻烦给我也发一下工程吧,我的邮箱是10024940@qq.com,非常感谢!

0
老猫
老猫

根据上面的配置信息,我自己搭建了一下环境,已经解决了,不过我用2.6这版在jboss5.1下运行不起来,后来改用2.8就没事了。

0
摸摸泥

我也遇到同样的问题。谢谢 88103596@qq.com

0
咚咚妖
同求 2257565383@qq.com  谢谢
0
l
lihengji
399919861@qq.com  我也遇到同样的问题。谢谢
0
于浩然
求工程 292528867@qq.com
0
孙伟111
同求,万分感谢!sunsam89@qq.com
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部