<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 84, comments - 54, trackbacks - 0, articles - 0
       :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理
     

    一、準(zhǔn)備工作

    因?yàn)楸镜販y試服務(wù)器WAS6.0,所以先在RAD7中打開window>preferences>web services>Server and Runtime,在Server項(xiàng)選擇WebSphere v6.0 Server

    Workspace中創(chuàng)建一個(gè)Websphere v6.0的本地服務(wù)器。

    創(chuàng)建一個(gè)Enterprise Application Project項(xiàng)目:Weather,須包含一個(gè)EJB項(xiàng)目和一個(gè)dynamic web項(xiàng)目。WeatherWeb在創(chuàng)建之后保持空,專門提供Web Service


    接下來,為項(xiàng)目創(chuàng)建一個(gè)EJB

    為了簡化過程,只在WeatherEJBEJB中寫了簡單的方法,例如:
        public String getInformation(){
            
    return "WEATHER WEB SERVICE";
        }

        
        
    public int getTemperature(Calendar date) {
            
    return 26;
        }

        
        
    public String getWind(Calendar date) {
            
    return "SW";
        }
     

    然后,在WeatherEJB上點(diǎn)擊右鍵,選擇Prepare for Deployment

     

    二、EJB生成Webservice

    右鍵點(diǎn)擊WeatherEJBBean,選擇Webservices->Create Webservice

    因?yàn)槭菑?/span>JavaWebservice,在Web Service type中選擇Bottom up EJB Web Service。在Service implementation點(diǎn)擊Browse,選擇剛才創(chuàng)建的EJB。確保Configuration 中的項(xiàng)目正確后,其他選項(xiàng)保持默認(rèn),點(diǎn)擊Next




     

    之后一直按Next,出現(xiàn)Start server的按鈕,點(diǎn)擊Start

    如果在第一階段創(chuàng)建EAP的時(shí)候沒有創(chuàng)建dynamic web項(xiàng)目的話,在此過程中,RAD將會(huì)自動(dòng)創(chuàng)建一個(gè)web項(xiàng)目。但是,這個(gè)web項(xiàng)目中并不會(huì)自帶ibm-web-bnd.xmi文件,這在本地環(huán)境下沒問題,當(dāng)發(fā)布到有多個(gè)應(yīng)用服務(wù)器的環(huán)境中時(shí),就會(huì)遇到以下的錯(cuò)誤提示:

    ADMA0010E: A Validation error occurred in task Selecting virtual hosts for Web modules. A virtual host is not specified for Web module WeatherWeb with URI WeatherWeb.war,WEB-INF/web.xml."

    本地服務(wù)器啟動(dòng)以后,我們的EAR將會(huì)被自動(dòng)發(fā)布,打開Console視圖,應(yīng)該可以看到如下信息:



     

    打開IE,輸入http://localhost:9080/WeatherWeb/services/WeatherEJB,如果Web Service成功發(fā)布,則可以看到如下信息:

    {http://bean}WeatherEJB

    Hi there, this is a Web service!

     

    三、測試Web Service

    RAD提供了多種途徑進(jìn)行Web Service的測試。

    1.使用Web Services Explorer測試

    Project Explorer視圖下,展開JSR-109 Web Services,右鍵點(diǎn)擊WeatherEJBService,選擇Test With Web Service Explorer



     

    之后,IE會(huì)打開一個(gè)新窗口,在Endpoints欄,新增一個(gè)項(xiàng)目:

    http://localhost:9080/WeatherWeb/services/WeatherEJB

    然后轉(zhuǎn)到左側(cè)的Navigator,展開WeatherEJBSoapBinding,就可以對(duì)EJB下的Method逐個(gè)進(jìn)行測試了。




     

    2.使用Test JSP 測試

    Web Services Explorer無法對(duì)SOAP/JMSweb service進(jìn)行測試,而通過生成Test JSP則可以。

    同樣在WeatherEJBService上點(diǎn)擊右鍵,選擇Generate Client

    拖動(dòng)左側(cè)滑塊調(diào)整Client Generation Level Test Client

    Client Project項(xiàng)指定WeatherWeb,然后點(diǎn)Next



     

    然后選擇需要測試的方法。完成以后,在WeatherWeb下應(yīng)該會(huì)自動(dòng)生成一個(gè)sampleWeatherEJBProxy的目錄,右擊TestClient.jsp選擇Run As -> Run on Server,選擇我們的本地測試服務(wù)器。



     

    TestClient.jsp上包含了Methods, Inputs, Results三個(gè)框架,便可以對(duì)Service逐個(gè)進(jìn)行測試。其中setEndpoint()可以為本地測試選擇不同的Endpoint。需要注意的是,為方便測試,Web Service返回類型一定要實(shí)現(xiàn)toString(),否則在Result中只能看到類似itso.objects.Weather@61a607dc的結(jié)果。



     

    3. Write a Java Client that uses the stubs

    在前面的步驟中,已經(jīng)利用RAD生成了一個(gè)Client。利用Stubs訪問Web Service變得非常簡單。在此用一個(gè)簡單的Servlet以測試:

    package servlet;

    import java.io.IOException;
    import java.net.MalformedURLException;
    import java.net.URL;
    import java.rmi.RemoteException;
    import java.util.Calendar;

    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import javax.xml.rpc.ServiceException;

    import ejbs.GetTemperatureResponse;
    import ejbs.Weather;
    import ejbs.WeatherServiceLocator;

    /**
     * Servlet implementation class for Servlet: GetTemperature
     *
     
    */

     
    public class GetTemperature extends javax.servlet.http.HttpServlet implements javax.servlet.Servlet {
        
    /* (non-Java-doc)
         * @see javax.servlet.http.HttpServlet#HttpServlet()
         
    */

        
    public GetTemperature() {
            
    super();
        }
           
        
        
    /* (non-Java-doc)
         * @see javax.servlet.http.HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
         
    */

        
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            WeatherServiceLocator weatherServiceLocator 
    = new WeatherServiceLocator();
            
    try {
                URL serviceURL 
    = new URL("http://dpta00398:9080/WeatherWeb/services/Weather");
                Weather weather 
    = weatherServiceLocator.getWeather(serviceURL);
                ejbs.GetTemperature inParam 
    = new ejbs.GetTemperature();
                inParam.setDate(Calendar.getInstance());
                GetTemperatureResponse rsp 
    = weather.getTemperature(inParam);
                response.getWriter().write(
    "Temperature:" + rsp.getGetTemperatureReturn());
            }
     catch (MalformedURLException e) {
                response.getWriter().write(e.getMessage());
            }
     catch (ServiceException e) {
                response.getWriter().write(e.getMessage());
            }
     catch (RemoteException e) {
                response.getWriter().write(e.getMessage());
            }

            
        }
          
        
        
    /* (non-Java-doc)
         * @see javax.servlet.http.HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
         
    */

        
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
            doGet(request, response);
        }
                     
    }

     

    參考資料:《WebSphere Version 6 Web Services Handbook Development and Deployment》

    主站蜘蛛池模板: 91免费国产自产地址入| 亚洲综合成人网在线观看| 成人免费福利视频| 国产伦精品一区二区免费| 亚洲精品无码中文久久字幕| 久久亚洲精品国产精品| 在线亚洲精品自拍| 亚洲av无码成人精品区在线播放 | 四虎影院免费在线播放| 久久精品视频免费播放| 国产成人高清精品免费观看| 久久综合亚洲色hezyo| 亚洲sss综合天堂久久久| 久久亚洲精品中文字幕| 亚洲国产精品成人精品无码区 | 亚洲一区二区三区成人网站| 亚洲视频精品在线观看| 亚洲AV无码久久精品色欲| 国产精品亚洲不卡一区二区三区 | 免费福利资源站在线视频| 亚洲变态另类一区二区三区 | 日本免费网站在线观看| 成人毛片免费观看视频| 中文字幕人成无码免费视频| 6080午夜一级毛片免费看| 日本免费一区二区三区 | 亚洲国产一区在线观看| 18亚洲男同志videos网站| 亚洲综合在线视频| 久久亚洲国产成人精品性色| 久久精品亚洲综合| 亚洲人成电影福利在线播放 | 日本免费xxxx| 国产精品入口麻豆免费观看| 国产乱子精品免费视观看片| 黄页网站在线观看免费高清| 最近最新中文字幕完整版免费高清 | 国内精自视频品线六区免费| 成人免费大片免费观看网站| 亚洲精品免费网站| 女人被男人桶得好爽免费视频|