2009-06-12 2 views
3

이번 주에 SOAP 패키지 javax.xml.soap. *을 사용하는 Java WebService 프로젝트를 살펴 보았습니다.javax.xml.soap이 apache cxf보다 나은가요?

SOAP 웹 서비스를 만들기 전에 Apache CXF 라이브러리를 사용하지 않았습니다.

나는 javax.xml.soap의에 대한 질문이 있습니다. *

가 성능면에서 CXF보다 더 나은가요?

코딩 측면에서 CXF는 SOAP API에 대해 전혀 걱정할 필요가 없으며 간단히 주석을 사용하여 몇 분 안에 서비스를 생성 할 수 있다는 것을 알았습니다.

또한 MessageFactory와 SOAPConnection은 threadsafe입니까? 나는이 물체의 생성을 매번 구하기 위해 이것을 요구하고있다. 생성이 오버 헤드가 아니라면 아무런 문제가 없지만, 그렇다면 한 번만 생성하고 싶습니다. 스레드 안전성에 대한 javadoc에서 찾을 수 없습니다.

답변

6

javax.xml.soap은 저수준 API이므로 CXF는 많은 구현 중 하나 인 API의 구현입니다. CXF는 모든 구현과 마찬가지로 아래에 javax.xml.soap을 사용합니다.

보다 의미있는 비교는 JAX-WS-RI 및 CXF와 같은 JAX-WS 구현 간의 비교입니다.

5

사실, CXF는 JAX-WS 핸들러가 존재하지 않는 한 javax.xml.soap (SAAJ)을 사용하지 않습니다 (JAX-WS 핸들러가 존재하는 경우, 제공자 유형의 것 등).

일반적으로 SAAJ는 CXF가 일반적으로 수행하는 스트리밍을 허용하지 않기 때문에 CXF보다 느립니다. SAAJ를 사용하면 전체 SOAP 메시지가 DOM에 메모리에 저장됩니다. 즉, 데이터를 DOM으로 필요로하거나 필요로하는 경우 처리가 덜 필요하므로 조금 더 빨라질 수 있습니다.

+0

변경된 사항 : SAAJ> = 1.3.4가 이것을 처리 할 수 ​​있습니다 ([매우 큰 XML 페이로드로/매우 큰 MIME 메시지 처리로 SOAPMessages 만들기] 참조) (http://weblogs.java.net/blog/kumarjayanti/archive/2009/12/10/summary-proprietary-features-saaj-ri-134)). –