2010-07-08 19 views
5

Là người mới bắt đầu dịch vụ web, tôi đã cố gắng trong 2 tuần để nhận được dịch vụ web hello thế giới làm việc với maven, eclipse và tomcat.cách triển khai dịch vụ jax-ws sang nhật thực hoặc tomcat?

Tôi đã từ bỏ việc cố gắng để bất kỳ trình tạo mã/wsdl nào hoạt động, và tôi đã làm theo hướng dẫn này http://myarch.com/create-jax-ws-service-in-5-minutes để viết mã một ví dụ, thật rực rỡ.

Kết quả này trong 4 tệp lớp và tệp WSDL.

Vì vậy, câu hỏi ngu ngốc của tôi là làm thế nào để "chạy" dịch vụ trong nhật thực và/hoặc trên tomcat?

Tôi đã thử triển khai chúng dưới dạng webapp, nhưng không có niềm vui - không có gì trong web.xml để nói với servlet engine rằng dịch vụ web tồn tại, vì vậy tôi đoán nó không bao giờ có thể hoạt động.

Tôi có phải có vùng chứa dịch vụ web đặc biệt (ví dụ: trục2, tàu điện ngầm hoặc CXF) bên trong tomcat và triển khai không? Hoặc nó có thể chạy với một số jax-ws jars + cấu hình bí ẩn?

Tôi không muốn phải cài đặt vào tàu điện ngầm tomcat (sử dụng kiến, và được desiged cho glassfish), hoặc axis2 (sử dụng kiến, và hầu hết mọi người dường như không khuyên bạn nên).

Tôi đã xem CXF, nhưng không thể tìm thấy bất kỳ nơi nào trên trang web của họ về cách cài đặt/định cấu hình trên tomcat (hoặc nhật thực) mà không có mùa xuân. Tôi đặt các lọ CFX trong các phụ thuộc maven, và cài đặt các plugin eclipse, nhưng điều này làm cho bạn bất kỳ gần gũi hơn với thực sự chạy một webservice với keo cấu hình bí ẩn. CXF dường như gắn liền với mùa xuân, đó là một lớn trừ cho chúng tôi như chúng tôi không sử dụng mùa xuân (hoặc cần bất kỳ tính năng của nó).

Tôi nhận thấy helt wtp có một số loại dự án dịch vụ web có tên JSR-109. Đây có phải là RPC java duy nhất, hay nó hỗ trợ hệ thống websiervice SOAP đầy đủ, và có đáng để tìm ra không?

Mọi lời khuyên đều được hoan nghênh. Tôi phải có googled 1000 trang để tìm kiếm các trang web thánh chén thánh - tức là làm thế nào để tạo ra và triển khai một để tomcat kết thúc để kết thúc. Nó có phải là khó khăn không?

Trả lời

4

Thêm đoạn này để web.xml của bạn tập tin

<servlet> 
    <servlet-name>wshello</servlet-name> 
    <servlet-class> 
     com.sun.xml.ws.transport.http.servlet.WSServlet 
    </servlet-class>    
</servlet>  
<servlet-mapping> 
    <servlet-name>wshello</servlet-name> 
     <url-pattern>/webservice</url-pattern> 
</servlet-mapping> 

Và sau đó chỉ cần tạo một file có tên là nắng jaxws.xml.

<?xml version="1.0" encoding="UTF-8"?> 
<endpoints xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime" version="2.0"> 
    <endpoint name="WebServiceTest" 
      implementation="your.webservice.impl.ClassName" 
      url-pattern="/webservice"/> 
</endpoints> 

Sau đó tạo tệp chiến tranh như bình thường. Bạn không cần CXF hoặc Axis để triển khai WebService cơ bản vào Tomcat. Bằng cách jax-ws jars thư viện (jaxws-api.jar, jaxb-impl.jar, vv ..) nên có trong classpath của bạn. Bạn có thể tải xuống thư viện jax-ws từ here

1

Tôi biết đó là một cliche nhưng có vẻ như bạn đang cố gắng phát minh lại bánh xe. Có một lý do có những thứ như Axis2 và CXF. Họ làm rất nhiều công việc khó khăn cho bạn. Tôi đã sử dụng cả hai và đã có rất nhiều thành công với họ. Hãy nhớ rằng tôi đang nói từ kinh nghiệm cá nhân hạn chế.

Tôi thấy rằng CXF và Spring giúp dễ dàng thiết lập dịch vụ JAX-WS hợp đồng đầu tiên và thậm chí thêm WS-Security, ghi nhật ký thông báo, xác thực lược đồ và cài đặt cấu hình HTTP. Hầu hết được thực hiện với tệp cấu hình Spring XML. Tôi cũng biết rằng Spring có thể được sử dụng với Quartz để lên lịch công việc và quản lý truy cập dữ liệu của bạn. Đó là một công cụ khá tiện dụng.

Trục2, trong khi tôi đã không sử dụng nó trong một thời gian, tôi nhớ nó làm cho nó khá dễ dàng để biến một số POJOs thành một dịch vụ với nỗ lực tối thiểu.

Trải nghiệm duy nhất của tôi với Metro là một dịch vụ thử nghiệm nhỏ mà tôi đã tạo với NetBeans và chạy nó trên máy chủ Glassfish cài sẵn. Nó rất dễ dàng, nhưng IDE đã làm rất nhiều công việc cho bạn, mà có lẽ không phải là một cách hay để học. Nó cảm thấy như nó chỉ mất một loạt các cú click chuột và đột nhiên có một dịch vụ.

Ngoài ra this question là loại liên quan.

Chúc may mắn!

1

Hãy xem http://www.jroller.com/gmazza/entry/web_service_tutorial. Đó là một hướng dẫn từng bước hoàn chỉnh cho CXF và tàu điện ngầm. Tomcat được sử dụng để triển khai và cũng có các phiên bản maven và ant trong trường hợp bạn thích một tùy chọn khác để tổ chức các dự án xây dựng.

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