<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 閱讀(5667) 評論(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)

    相冊

    搜索

    積分與排名

    最新隨筆

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 鲁啊鲁在线视频免费播放| 亚洲精品福利网站| 男性gay黄免费网站| 四虎影视免费在线| 亚洲中文字幕一二三四区苍井空| 最近中文字幕无免费| 亚洲尹人九九大色香蕉网站| 在线观看片免费人成视频无码| 亚洲色欲色欲www在线丝 | 你懂的在线免费观看| 亚洲成av人片不卡无码久久| 日韩一区二区三区免费播放| 中文字幕亚洲激情| 免费人成激情视频在线观看冫| 亚洲av成人无码久久精品| 91精品国产免费久久国语麻豆| 亚洲最新在线视频| 免费看片免费播放| 无码AV动漫精品一区二区免费| 2048亚洲精品国产| 18禁美女黄网站色大片免费观看| 亚洲一区二区三区在线观看蜜桃| 国产精品久久久久久久久久免费| 久久亚洲AV成人无码国产最大| 久久久久一级精品亚洲国产成人综合AV区 | 国产美女精品视频免费观看| 人人爽人人爽人人片A免费| 亚洲色欲久久久综合网| 最近中文字幕电影大全免费版 | ww4545四虎永久免费地址| 亚洲激情视频图片| 亚洲一级特黄大片无码毛片| 99视频免费播放| 亚洲欧美日韩中文二区| 中文字幕亚洲不卡在线亚瑟| 1000部拍拍拍18勿入免费视频下载 | 国产免费黄色大片| 国产精品免费高清在线观看| 亚洲欧美成人一区二区三区| 亚洲午夜久久久影院| 永久免费毛片在线播放|