2014-05-14 18 views
5

Tôi đang sử dụng cầu chì JBoss 6.1-thức:endpoint sử dụng CXF trong cầu chì JBoss

đây là con đường đơn giản của tôi:

<route> 
    <from uri="cxf:bean:synchronousEndpoint"/> 
    <log message="Service invoked." /> 
    <process ref="simpleProcessor"/> 
</route> 

và trong simpleProcessor Tôi đưa trả lời đúng (ví dụ: đối tượng JAXB tương ứng) vào ngữ cảnh. Tuy nhiên, nó phản ứng với lỗi:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"> 
    <soap:Body> 
     <soap:Fault> 
      <faultcode>soap:Server</faultcode> 
      <faultstring>Marshalling Error: java.lang.Object cannot be cast to org.w3c.dom.Element</faultstring> 
     </soap:Fault> 
    </soap:Body> 
</soap:Envelope> 

đây là dấu vết ngăn xếp:

Caused by: java.lang.ClassCastException: java.lang.Object cannot be cast to org.w3c.dom.Element 

là có bất kỳ gợi ý hoặc đề nghị?

Trả lời

0

Khó nói mà không thấy thêm một số mã từ Trình xử lý đơn giản. Tuy nhiên có vẻ như bạn đang sử dụng tham số dataFormat sai.

Thành phần CXF có một tham số dataFormat mà có thể là bất kỳ những điều sau đây:

  • POJO: POJO (đối tượng Plain cũ Java) đều được các thông số Java để phương pháp được gọi trên đối tượng máy chủ. Cả hai giao thức và logic trình xử lý JAX-WS đều được hỗ trợ.

  • PAYLOAD: PAYLOAD là payload nhắn (nội dung của xà phòng: cơ thể) sau khi cấu hình tin nhắn trong endpoint CXF được áp dụng. Chỉ hỗ trợ xử lý giao thức JAX-WS. Bộ xử lý JAX-WS hợp lý không được hỗ trợ.

  • THÔNG ĐIỆP: MESSAGE là tin nhắn thô nhận được từ lớp vận chuyển . Bạn không nên chạm hoặc thay đổi Stream, một số các bộ chặn đánh chặn CXF sẽ bị xóa nếu bạn đang sử dụng loại DataFormat này để bạn không thể thấy bất kỳ tiêu đề xà phòng nào sau khi xử lý người tiêu dùng và JAX-WS là camel-cxf không được hỗ trợ.

  • CXF_MESSAGE: Mới trong Camel 2.8.2, CXF_MESSAGE cho phép viện dẫn khả năng đầy đủ của máy bay đánh chặn CXF bằng cách chuyển đổi các thông điệp từ các lớp truyền tải vào một tin nhắn SOAP liệu

Giá trị mặc định là POJO có nghĩa là không có XML được truyền dưới dạng tin nhắn Camel đang truyền các đối tượng. Tôi nghi ngờ bạn có thể đang cố gắng điều khiển phản hồi dưới dạng XML và điều này đang gây ra sự cố.

Tôi đã gặp phải điều gì đó tương tự như vậy trong khi tôi đang cố gắng chuyển POJO thành XML bằng cách cố gắng thực hiện truy vấn XPATH trên XML khi tôi nhận được POJO.

Các vấn đề liên quan