5.5. JAX-WS


WebService 지원은 Apache CXF 도 사용하는 JBoss EAP WebServices 하위 시스템과 통합된 CXF 구성 요소를 통해 제공됩니다.

5.5.1. JAX-WS CXF Producer

다음 코드 예제에서는 CXF를 사용하여 WildFly 웹 서비스 하위 시스템에서 배포한 웹 서비스를 사용합니다.

5.5.1.1. Cryostat-WS 웹 서비스

다음의 간단한 웹 서비스에는 두 개의 문자열 인수를 함께 연결하고 반환하는 간단한 '!' 방법이 있습니다.

JBoss EAP 웹 서비스 하위 시스템이 Cryostat-WS 주석이 포함된 클래스를 감지하면 CXF 엔드포인트를 부트스트랩합니다. 이 예에서 서비스 끝점은 http://hostname:port/context-root/greeting 에 있습니다.

// Service interface
@WebService(name = "greeting")
public interface GreetingService {
    @WebMethod(operationName = "greet", action = "urn:greet")
    String greet(@WebParam(name = "message") String message, @WebParam(name = "name") String name);
}

// Service implementation
public class GreetingServiceImpl implements GreetingService{
    public String greet(String message, String name) {
        return message + " " + name ;
    }
}

5.5.1.2. Camel 경로 구성

이 RouteBuilder는 위에 정의된 '승인' 웹 서비스를 사용하는 CXF 생산자 엔드포인트를 구성합니다. camel-cdi 구성 요소와 함께 CDI는 RouteBuilder 및 CamelContext를 부트스트랩하는 데 사용됩니다.

@Startup
@ApplicationScoped
@ContextName("cxf-camel-context")
public class CxfRouteBuilder extends RouteBuilder {

    @Override
    public void configure() throws Exception {
        from("direct:start")
        .to("cxf://http://localhost:8080/example-camel-cxf/greeting?serviceClass=" + GreetingService.class.getName());
    }
}

인사말 웹 서비스에는 두 개의 매개변수가 필요합니다. 이들은 ProducerTemplate 을 통해 위의 경로에 제공될 수 있습니다. 웹 서비스 메서드 인수 값은 교환 본문으로 전달되는 오브젝트 배열을 구성하여 구성됩니다.

String message = "Hello"
String name = "Kermit"

ProducerTemplate producer = camelContext.createProducerTemplate();
Object[] serviceParams = new Object[] {message, name};
String result = producer.requestBody("direct:start", serviceParams, String.class);

5.5.2. Camel CXF JAX-WS Consumer

<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:cxf="http://camel.apache.org/schema/cxf"
       xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://camel.apache.org/schema/cxf http://camel.apache.org/schema/cxf/camel-cxf.xsd
        http://camel.apache.org/schema/spring http://camel.apache.org/schema/spring/camel-spring.xsd">

    <cxf:cxfEndpoint id="cxfConsumer"
                     address="http://localhost:8080/webservices/greeting"
                     serviceClass="org.wildfly.camel.examples.cxf.jaxws.GreetingService" />

    <camelContext id="cxfws-camel-context" xmlns="http://camel.apache.org/schema/spring">
        <route>
            <from uri="cxf:bean:cxfConsumer" />
            <to uri="log:ws" />
        </route>
    </camelContext>

</beans>

5.5.3. 보안

Cryostat -WS 보안 섹션을 참조하십시오.

5.5.4. EAP의 Fuse 빠른 시작 예

빠른 시작 예제는 빠른 시작/camel/camel-cxf-jaxws 디렉터리에 있는 EAP 설치의 Fuse에서 사용할 수 있습니다.

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.