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

    相冊

    搜索

    積分與排名

    最新隨筆

    最新評論

    閱讀排行榜

    評論排行榜

    主站蜘蛛池模板: 涩涩色中文综合亚洲| 亚洲美女中文字幕| 一本久久免费视频| 亚洲成AⅤ人影院在线观看| 真正全免费视频a毛片| 亚洲电影日韩精品| 一本岛v免费不卡一二三区| 久久精品亚洲福利| 免费无码又爽又刺激网站直播| 国产亚洲欧洲Aⅴ综合一区| 野花香在线视频免费观看大全| 久久国产亚洲精品麻豆| 99re热精品视频国产免费| 亚洲精品国产啊女成拍色拍| 日韩免费精品视频| 国产精品亚洲综合网站| 久久精品国产精品亚洲人人| 日本在线免费观看| 久久夜色精品国产噜噜亚洲a| 日韩免费a级在线观看| 一道本在线免费视频| 亚洲AV无一区二区三区久久| 成年黄网站色大免费全看| 亚洲精品国产精品| 亚洲小说区图片区另类春色| 99re免费99re在线视频手机版| 亚洲综合色区中文字幕| 亚洲成a人片在线不卡| 拔擦拔擦8x华人免费久久| 中文字幕高清免费不卡视频| 亚洲国产aⅴ综合网| 国产免费AV片在线观看| 亚洲一区在线观看视频| 免费中文字幕在线| 最近中文字幕完整免费视频ww| 亚洲中文字幕乱码熟女在线| 久久激情亚洲精品无码?V| 在线视频免费观看爽爽爽| 免费一级特黄特色大片| 亚洲国产精品成人综合色在线婷婷| 免费一级大黄特色大片|