当前位置: 首页 > 知识库问答 >
问题:

从Camel调用JAX-WS Web服务

岑光熙
2023-03-14

我需要调用WildFly 8上可用的JAX-WS Web服务。我从一个简单的例子开始。这是我的网络服务:

import javax.jws.WebService;
@WebService
public class HelloWorld implements Hello{

    @Override
    public String greet(String s) {

        return "Hello "+s;
    }

}

WSDL 可在以下网址获得: http://localhost:8080/DemoWS/HelloWorld?wsdl

看看Tomcat-CXF的例子,我编写了以下路由:

public class CamelRoute extends RouteBuilder {


    private String uri = "cxf:http://localhost:8080/helloWorld?serviceClass=com.sample.HelloWorld";

    @Override
    public void configure() throws Exception {
        from(uri)
            .to("log:input")
            .recipientList(simple("direct:${header.operationName}"));

        from("direct:greet")
            .process(new Processor() {
                public void process(Exchange exchange) throws Exception {

                    String id = exchange.getIn().getBody(String.class);
                    exchange.getOut().setBody(id);
                }
            })
            .to("log:output");


    }
}

通过在 Camel 上下文中运行上述代码,将返回以下错误:

Exception in thread "main" org.apache.camel.FailedToCreateRouteException: Failed to create route route1: Route[[From[cxf:http://localhost:8080/helloWorld?serviceClas... because of Failed to resolve endpoint: cxf://http://localhost:8080/helloWorld?serviceClass=com.sample.HelloWorld due to: No component found with scheme: cxf
    at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:177)
    at org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:731)
    at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:1803)
    at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:1589)
    at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:1453)
    at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:60)
    at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1421)
    at com.sample.Main.main(Main.java:15)
Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: cxf://http://localhost:8080/helloWorld?

serviceClass=com.sample。HelloWorld的原因是:找不到方案为cxf的组件

看来我甚至无法调用它。有什么帮助吗?Thanks公司

共有1个答案

韩彦君
2023-03-14
<dependency>
  <groupId>org.apache.camel</groupId>
  <artifactId>camel-cxf</artifactId>
</dependency>
 类似资料:
  • 我是Apache Camel的新手,我使用Red Hat Code准备工作室12.16.0.GA.我想调用肥皂网络服务。我用过这个例子https://tomd.xyz/camel-consume-soap-service/ 这是我的camel上下文文件 这是我的输入bean 围绕它有许多问题。首先,我不能将输入参数传入主体。我试着像这样设置身体 但没有得到响应或只是没有记录。我已经尝试使用bean

  • 问题内容: 我有一个JAX-WS Web服务,当从任何客户端(即Java destkop应用程序)而不是从JavaScript调用该服务时,它都能正常工作。 我的WS界面如下所示: 我从javascript这样调用它: 和发送看起来像这样: 该方法被调用(我可以在Java端进行跟踪),但是所有传递的参数均为null。我的格式/内容一定有问题。 问题答案: 好,我知道了。我需要更改格式,使其看起来像

  • 我是保险丝骆驼的新手,cxf。 我想调用第三方web服务。我不想使用wsld2java或serviceclass。我有一个wsdl。 下面是进行通用 Web 服务调用的要求 json请求数据- 1.如何将json转换为soaprequest(xml),反之亦然(Marshall格式soapjxab需要jaxb注释类)2.如何在有效负载模式下调用soap。。 任何帮助(链接/示例)将不胜感激。 谢谢

  • 我有一个基于ofbizsoap的web服务,它是公开的(可以接受请求),并且生成了WSDL代码和WSDL URL。我的问题是,有没有一种方法可以使用CXF Java客户端或JAX-WS客户端使用此web服务? 总的来说,我希望能够将客户机添加到Mule esb组件中,作为Mule流的一部分。我可以使用AXIS2调用Obiz web服务,但Mule ESB似乎不支持AXIS2,这给我带来了另一个问题

  • 我正在尝试将Apache CXF与Apache Camel集成。骆驼的配置: 现在,为了调用web服务上的特定操作,我使用以下方法: 但是在包含上述配置后,我得到< code > WARN servlet controller:149-在服务器控制台上找不到对http://localhost:8080/cxf service/services/cxfAuth的Observer的请求,并且在浏览器上

  • 问题内容: 我目前正在使用HTTP方法来调用一些URL,这将导致JIRA问题。 现在,我想使用Apache Camel,该如何使用? 我需要通过骆驼调用以下链接: 由于我是Camel的新手,因此也请提出一些解决方案和示例。 谢谢 问题答案: 您可以轻松使用CXFRS组件;如果出于某种原因需要使用HTTP组件进行操作,则也可以轻松地使用它: 当然,在到达路由的这一部分之前,您将需要使用标头来丰富您的