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

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

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

    David.Turing's blog

     

    從java.lang.UnsupportedOperationException看WebLogic WS*協議棧的變遷

    之前,有些朋友從開源的WS*應用(比如說Axis、CXF)遷移到WebLogic 9、10上,經常遇到類似下面的異常:

    java.lang.UnsupportedOperationException:?This? class ?does?not?support?SAAJ? 1.3
    ????????at?weblogic.webservice.core.soap.SOAPElementImpl.getElementQName(SOAPElementImpl.java:
    651 )
    ????????at?org.springframework.ws.soap.saaj.Saaj13Implementation.getName(Saaj13Implementation.java:
    67 )
    ????????at?org.springframework.ws.soap.saaj.SaajSoapEnvelope.getBody(SaajSoapEnvelope.java:
    49 )
    ????????at?org.springframework.ws.soap.AbstractSoapMessage.getSoapBody(AbstractSoapMessage.java:
    35 )
    ????????at?org.springframework.ws.soap.AbstractSoapMessage.getPayloadResult(AbstractSoapMessage.java:
    56 )

    這有一些歷史因素在內,WebLogic 8.1的WebService協議棧,包含在weblogic.jar中。
    SOAP棧的全部實現,都在weblogic.webservice.core.soap.* 這個Package中。
    進入了Java5的時代后,JWS依靠Annotation方式,已經徹底改變WebService編程的外觀,于是,隨之而來的是,基于Java5的WebLogic 9/10,基本上使用Sun JWS方式實現Web Services,且WebLogic開始兼容新的WS* API,WebLogic的做法是deprecated以前的WS API(weblogic.webservice.core.soap.*),但為了8.1應用升級的兼容性考慮,用戶依然使用較舊的包。

    比如上述的NotSupport異常,在默認的WebLogic 9、10中%BEA_HOME%\modules\com.bea.core.weblogic.saaj_1.0.1.0.jar其實是Support的。

    對WebLogic 8.1老用戶來說,他們的WS*應用無需重新編碼即可運行在WebLogic 9.2,此時默認使用老的協議棧【weblogic.webservice.core.soap.*】
    對WebLogic 9.2新用戶來說,他們也可以使用老協議棧,也可以使用新的協議棧,使用weblogic.xml.saaj.*

    針對上述的NotSupport異常,有兩種方式可以讓應用使用新的API實現:
    ?System.setProperty("javax.xml.soap.MessageFactory",??"weblogic.xml.saaj.MessageFactoryImpl");
    -Djavax.xml.soap.MessageFactory=weblogic.xml.saaj.MessageFactoryImpl

    java.lang.UnsupportedOperationException:?This? class ?does?not?support?
    SAAJ?
    1.1

    The?actual?
    class / method?in?question?is?javax.xml.soap.Text.isComment(),?which?
    appears?to?be?implemented?by?
    weblogic.webservice.core.soap.SOAPTextElement.isComment().

    Stack?trace?is?as?follows:?
    DemoServlet?received?an?unexpected?exception:?
    java.lang.UnsupportedOperationException:?This?
    class ?does?not?support?SAAJ? 1.1
    java.lang.UnsupportedOperationException:?This?
    class ?does?not?support?SAAJ? 1.1
    ????????at?
    weblogic.webservice.core.soap.SOAPTextElement.isComment(SOAPTextElement.java:
    43 )
    ????????at?
    com.company.demo.servlet.DemoServlet.treeWalk(DemoServlet.java:
    209 )
    ????????at?
    com.company.demo.servlet.DemoServlet.treeWalk(DemoServlet.java:
    225 )
    ????????at?
    com.company.demo.servlet.DemoServlet.treeWalk(DemoServlet.java:
    225 )
    ????????at?
    com.company.demo.servlet.DemoServlet.treeWalk(DemoServlet.java:
    225 )
    ????????at?
    com.company.demo.servlet.DemoServlet.treeWalk(DemoServlet.java:
    225 )
    ????????at?
    com.company.demo.servlet.DemoServlet.treeWalk(DemoServlet.java:
    225 )
    ????????at?
    com.company.demo.servlet.DemoServlet.treeWalk(DemoServlet.java:
    225 )
    ????????at?
    com.company.demo.servlet.DemoServlet.treeWalk(DemoServlet.java:
    225 )
    ????????at?
    com.company.demo.servlet.DemoServlet.doGetOrPost(DemoServlet.java:
    119 )
    ????????at?com.company.demo.servlet.DemoServlet.doGet(DemoServlet.java:
    44 )
    ????????at?javax.servlet.http.HttpServlet.service(HttpServlet.java:
    743 )
    ????????at?javax.servlet.http.HttpServlet.service(HttpServlet.java:
    856 )
    ????????at?
    weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:
    225 )
    ????????at?
    weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:
    127 )
    ????????at?
    weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:
    283 )
    ????????at?
    weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:
    175 )
    ????????at?
    weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:
    3214 )
    ????????at?
    weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:
    321 )
    ????????at?
    weblogic.security.service.SecurityManager.runAs(SecurityManager.java:
    121 )
    ????????at?
    weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:
    1983 )
    ????????at?
    weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:
    1890 )
    ????????at?
    weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:
    1344 )
    ????????at?weblogic.work.ExecuteThread.execute(ExecuteThread.java:
    209 )
    ????????at?weblogic.work.ExecuteThread.run(ExecuteThread.java:
    181 )

    很好,因為它們使用了更多的API,這些API在WebLogic的老協議棧【weblogic.webservice.core.soap.*】中沒有被支持,使用新的即可。
    我一般在重啟WebLogic的時候,在startWebLogic.sh腳本中加入:
    -Djavax.xml.soap.MessageFactory=weblogic.webservice.core.soap.MessageFactoryImpl -Djavax.xml.soap.SOAPFactory=weblogic.webservice.core.soap.SOAPFactoryImpl

    posted on 2008-07-11 08:29 david.turing 閱讀(5683) 評論(4)  編輯  收藏 所屬分類: SOA/WebService

    評論

    # re: 從java.lang.UnsupportedOperationException看WebLogic WS*協議棧的變遷 2008-08-11 07:54 lansir

    主持人,還有相應的實戰經驗的實地演講么?要是在廣州開多幾次有多好啊。  回復  更多評論   

    # re: 從java.lang.UnsupportedOperationException看WebLogic WS*協議棧的變遷[未登錄] 2008-08-20 13:46 alang

    黃呀,水平太牛了.現在還在BEA嗎?有空可以加我的MSN:alang2000@live.cn  回復  更多評論   

    # re: 從java.lang.UnsupportedOperationException看WebLogic WS*協議棧的變遷 2008-08-20 20:36 鬼怪

    如果加到:WebLogic 9、10的啟動腳本上?

    #!/bin/sh

    # WARNING: This file is created by the Configuration Wizard.
    # Any changes to this script may be lost when adding extensions to this configuration.

    DOMAIN_HOME="C:/bea/user_projects/domains/base_domain"

    ${DOMAIN_HOME}/bin/startWebLogic.sh $*


    呵呵,不知道對不對?  回復  更多評論   

    # re: 從java.lang.UnsupportedOperationException看WebLogic WS*協議棧的變遷 2009-10-14 15:00 nesta

    請問怎么把
    -Djavax.xml.soap.MessageFactory=weblogic.webservice.core.soap.MessageFactoryImpl -Djavax.xml.soap.SOAPFactory=weblogic.webservice.core.soap.SOAPFactoryImpl
    加入啟動里,加在那個地方呢?  回復  更多評論   

    導航

    統計

    常用鏈接

    留言簿(110)

    我參與的團隊

    隨筆分類(126)

    隨筆檔案(155)

    文章分類(9)

    文章檔案(19)

    相冊

    搜索

    積分與排名

    最新隨筆

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 亚洲精品在线电影| 亚洲精品专区在线观看| 久久亚洲精品无码AV红樱桃| 国产免费黄色无码视频| 亚洲国产香蕉人人爽成AV片久久 | 亚洲婷婷综合色高清在线| 日韩视频免费在线观看| 亚洲人成在线影院| 99国产精品视频免费观看| 亚洲V无码一区二区三区四区观看 亚洲αv久久久噜噜噜噜噜 | 国产黄在线播放免费观看| 亚洲精品99久久久久中文字幕| 成人国产网站v片免费观看| 亚洲人成网站观看在线播放| 色播在线永久免费视频网站| 亚洲成色在线影院| 国产免费一区二区三区| 亚洲不卡在线观看| 情侣视频精品免费的国产| 成人免费网站久久久| 亚洲国产精品高清久久久| 最近免费中文字幕mv在线电影| 亚洲一区二区三区在线网站| 成人免费无码大片a毛片软件| 男女猛烈xx00免费视频试看| 最新亚洲成av人免费看| 免费不卡在线观看AV| 中文字幕无码精品亚洲资源网久久 | 亚洲中文字幕一二三四区苍井空| 日韩免费无码一区二区视频| 一级毛片a女人刺激视频免费| 久久亚洲精品成人| 午夜高清免费在线观看| 一区二区视频在线免费观看| 亚洲一区二区电影| 永久久久免费浮力影院| 91av免费在线视频| 亚洲国产精品成人精品软件| 亚洲M码 欧洲S码SSS222| 午夜不卡久久精品无码免费| 亚洲国产精品无码久久98 |