日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ssh项目部署到weblogic注意事项

發布時間:2025/5/22 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ssh项目部署到weblogic注意事项 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

部署到weblogic還是比較費勁的 ,不過基本上問題全是由于classloader順序的問題引起的。

首先在web-inf底下添加weblogic.xml文件如下

  • <?xml?version="1.0"?encoding="UTF-8"?>???
  • <weblogic-web-app???
  • xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app"???
  • xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"???
  • xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app?http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd">???
  • <container-descriptor>???
  • <index-directory-enabled>true</index-directory-enabled>???
  • <!--?關鍵!!!先加載web-inf下的jar包?-->???
  • <prefer-web-inf-classes>true</prefer-web-inf-classes>???
  • <show-archived-real-path-enabled>true</show-archived-real-path-enabled>??
  • </container-descriptor>???
  • </weblogic-web-app>???

  • 主要是確保先加載項目中的jar包,防止項目jar包和weblogic中jar包沖突,絕對路徑加載,在spring配置文件中確保classpath執行。

    ?

    添加antlr-2.7.6.jar包到weblogic中

    預防錯誤:在做查詢的時候,報出? org.hibernate.QueryException: ClassNotFoundException: org.hibernate.hql.ast.HqlToken這? 個錯誤(是通過數據源連接的)

    ?

    1.Could not load user defined filter in web.xml: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.

    2.No bean named 'sessionFactory' is defined

    以上問題發生原因:weblogic中的web.xml不支持通配符的寫法,如:

    <context-param>

    <param-name>contextConfigLocation</param-name>

    <param-value>classpath:applicationContext*.xml</param-value>

    </context-param>

    ?

    解決辦法:

    改為:

    <context-param>
    ??<param-name>contextConfigLocation</param-name>
    ??<param-value>classpath:applicationContext-common.xml</param-value>
    ?</context-param>

    把目錄寫全,不支持通配符

    ?

    3.部署后報錯java.lang.ClassCastException: weblogic.xml.jaxp.RegistrySAXTransformerFactory cannot be cast to javax.xml.transform.TransformerFactory

    ??????????? 這個錯有幾種說法,一個老外的帖子說,要把xml解析的jar包去掉

    * xercesImpl-2.9.1.jar

    * xml-apis-1.3.04.jar
    * xmlParserAPIs-2.0.2.jar

    ?

    還找到一個帖子http://hi.baidu.com/zhoushugen/blog/item/27e1caf71bbc0024730eecdc.html?說,到apache官網上下載最新的xalan包替換你lib下面的一些包。

    ?

    我是使用第二個方法解決的。

    ?

    • dbcp錯誤 ,這個問題比較傻,一開始用tomcat在跑的,所以數據庫連接池用了dbcp,換了weblogic后,忘記了配成jndi了。解決方法很簡單,加上spring的jndi查找datasource即可,如:

    ?

    <jee:jndi-lookup id="dataSource" jndi-name="jdbc/?xxxDS" />

    ?

    由于weblogic安全問題,可能會出現如下錯誤 ... invalid subject .. principles[weblogic,Administrators],這樣的話配置要按以下寫法:

    <jee:jndi-lookup id="dataSource" jndi-name="jdbc/xxxDS">
    <jee:environment>
    java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory
    java.naming.provider.url=t3://yourhost:yourport
    java.naming.security.principal=yourprincipal
    java.naming.security.credentials=yourcredentials
    </jee:environment>
    </jee:jndi-lookup>

    ?

    另外需要在setDomainEnv.sh中設置WLS_JDBC_REMOTE_ENABLED="-Dweblogic.jdbc.remoteEnabled=true",默認值為false

    ?

    cxf部署到weblogic ,這是我花了最長時間解決的問題,有的錯誤非常離奇。雖然解決了都沒搞明白為什么會發生。

    前面提到版本,就是因為我部署在weblogic10.3.0時一點錯沒有,部署到10.3.2和10.3.3錯誤一堆。cxf官方也有說如何部署到weblogic中的說明,可惜它只驗證了weblogic9.2,至少我按照它的配置,一點效果沒有。

    ?

    1、java.lang.LinkageError: loader constraints violated when linking javax/xml/namespace/QName class

    ?

    這個問題搜索了很久,解決靈感來自于http://www.blogjava.net/security/archive/2008/07/06/java_lang_LinkageError_Problem.html

    我是找到自己項目下包含QName的類的那個jar,jaxrpc.jar,把里面那個QName類刪了(這樣做好像不是很好)

    ?

    2、org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: org.apache.commons.logging.LogConfigurationException: Invalid class loader hierarchy. You have more than one version of 'org.apache.commons.logging.Log' visible, which is not allowed.

    ?

    這個錯非常神奇,我因為它搞了一天多,一直以為是我使用的commons-logging的版本和weblogic使用的不一樣,才出現的這個錯,然后搜索了weblogic目錄下的所有版本的commons-logging都換到我項目里試了一把,全都不行,搜遍國外論壇的大街小巷,就是沒有一個結果,后來仔細查看異常stack,里面居然包含了一個spring.orm拋出的信息,我部署的只是一個非常簡單的cxf項目,并沒有包含任何orm框架,配置也檢查了一遍,也沒有配過orm的東西,為什么異常會從這里拋出。最后發現是因為我使用了@Autowired和@Component注解來進行自動注入而引起的,但是還是搞不懂,我也只不過注入了一個plain?javabean,為什么使用@Autowired和@Component,異常會出現在orm上,然后我把spring-orm-2.5.6.jar扔到lib下,在部署一次,這個commons-logging的錯誤就消失了。真是神奇的錯誤。(滴汗)

    ?

    3、java.lang.NoSuchMethodException: oracle .j2ee .ws .wsdl .extensions .soap .SOAPBindingImpl .getElementType()

    ?

    這個錯誤也搜索了很久,沒有找到很直接的解決方案,最后自己摸索著解決了,cxf要用的是wsdl4j.jar,然后我的weblogic里安裝了webcenter中間件,然后在MW_HOME下面會多一個oracle_common目錄,這個目錄下的子目錄中會有一個jar叫orawsdl.jar里面就有上面描述的的那個oracle .j2ee .ws .wsdl .extensions .soap .SOAPBindingImpl 類,解決辦法是編輯startWeblogic.sh文件,把wsdl4j.jar加在weblogic自己的CLASSPATH的前面,就不會出現這個錯誤了。

    ?

    ?

    weblogic做了cluster后,session復制問題

    ?

    ?

    這個網上有很多說明,但是大部分好像都是針對舊版本的weblogic,網上流行的寫法:

    ?

    在weblogic.xml中增加如下配置:

    <session-descriptor>

    <session-param>

    <param-name>PersistentStoreType</param-name>

    <param-value>replicated</param-value>

    </session-param>

    </session-descriptor>

    ?

    ?

    weblogic11g下的寫法是:

    <session-descriptor>
    <persistent-store-type>replicated</persistent-store-type>
    <sharing-enabled>true</sharing-enabled>
    </session-descriptor>

    ?

    這應該跟不同版本的DTD有關

    ?

    注意任何需要持久化的session中的內容必須都實現java.io.Serializable接口,否則無法進行復制。

    ?

    不同weblogic中資源的遠程查詢與安全問題

    ?

    這個問題是能解決,但是也會引發其他問題,在我的項目中,我有3個weblogic,一個a部署了oracle bpm10g,

    另外2個b和c做集群部署了oracle webcenter11g,b中包含了集群的管理服務器,webcenter項目中需要遠程查找bpm的topic,如果不加ADF Security的話,不會出現錯誤,但是加上ADF Security的話,就會出現... invalid subject .. principles[xxxxx,xxxxx]的錯誤,現在我目前通過啟用weblogic中的全局信任這個功能,暫時解決了這個遠程查找的問題,

    但是又出現了新問題,這個問題很奇怪,啟用全局信任以后,b的管理服務器不知道什么時候會讀取到a的domain信息,一旦這個出現,一旦我想改b的domain的配置就必須重啟b的管理服務器,再次登錄才可以。這個問題我非常不明白,而且也不知道什么時候會發生,有時候讀取的正確,有時候不正確。目前還沒有辦法解決。

    轉載于:https://www.cnblogs.com/arthur-winbo/archive/2013/01/24/2875088.html

    總結

    以上是生活随笔為你收集整理的ssh项目部署到weblogic注意事项的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。