7.6. 部署 CXF JAX-WS 快速入门
本例演示了在 EAP 上使用带有红帽 Fuse 的 camel-cxf 组件来生成和使用 Elytron 安全域保护的 JAX-WS Web 服务。从 EAP 7.1 开始,Elytron 是一个新的安全框架。在这个快速入门中,Camel 路由从直接端点获取消息有效负载,并将其传递给 CXF producer 端点。生产者使用有效负载将参数传递给通过 BASIC HTTP 身份验证保护的 CXF JAX-WS Web 服务。
先决条件
- 确保已安装并配置了 Maven。
- 确保安装和配置有红帽 Fuse 的应用服务器。
流程
将
JBOSS_HOME
环境变量设置为指向应用服务器安装的根目录。对于 Linux
export JBOSS_HOME=...
对于 Windows:
set JBOSS_HOME=...
使用
add-user
脚本创建新服务器应用用户和组。对于 Linux
${JBOSS_HOME}/bin/add-user.sh -a -u testUser -p testPassword1+ -g testRole
对于 Windows:
%JBOSS_HOME%\bin\add-user.bat -a -u testUser -p testPassword1+ -g testRole
以单机模式启动应用服务器。
对于 Linux
${JBOSS_HOME}/bin/standalone.sh -c standalone-full.xml
对于 Windows:
%JBOSS_HOME%\bin\standalone.bat -c standalone-full.xml
此项目的
webapp/WEB-INF
目录中的jboss-web-xml
和web.xml
文件设置应用程序安全域、安全角色和限制。
构建和部署项目。
mvn install -Pdeploy
此命令还会调用 CLI 脚本
configure-basic-security.cli
,它将创建安全域和一些其他管理对象。浏览到
http://localhost:8080/example-camel-cxf-jaxws-secure/
。此时会显示标题为 Send A Greeting 的页面。此 UI 可让您与测试 问候 Web 服务进行交互。服务 WSDL 位于
http://localhost:8080/webservices/greeting-security-basic?wsdl
。有一个名为 greet 的单个服务操作,它取两个名为 message 和 name 的 String 参数。调用 Web 服务将返回这些值链接在一起的响应。
测试 Camel Secure CXF JAX-WS
快速入门
- 浏览到 http://localhost:8080/example-camel-cxf-jaxws-secure/。
在 Send A Greeting Web 表单上,在文本字段中输入 消息和 名称,然后按 发送 按钮。
您输入的信息会显示在 UI 中以问候语显示。
CamelCxfWsServlet
从 Web UI 处理 POST 请求。它从参数值检索消息和名称,并构造对象数组。此对象数组是发送到direct:start
端点的消息有效负载。ProducerTemplate
将消息有效负载发送到 Camel。direct:start
端点将对象数组传递给cxf:bean
web service producer。CamelCxfWsServlet
使用 Web 服务响应来显示 Web UI 上的问候语。您可以在src/main/webapp/WEB-INF/cxfws-security-camel-context.xml
文件中看到完整的 Camel 路由。
取消部署快速入门
运行以下命令来取消部署快速入门。
mvn clean -Pdeploy