2015-04-22 32 views
-1

下面的代碼工作正常,而應用程序在weblogic中運行,但在tomcat中它提供了一個錯誤。 主要問題是加載java:comp/env/jmx/runtime我正在將我的應用程序Web邏輯移動到Tomcat7

所以,請讓我知道我需要做什麼配置來運行在tomcat中的代碼。

我的代碼:

MBeanServer server = (MBeanServer)ctx.lookup("java:comp/env/jmx/runtime"); 
    // Get the Platform MBean Server 
    ObjectName rs = new ObjectName("com.bea:Name=RuntimeService,Type=weblogic.management.mbeanservers.runtime.RuntimeServiceMBean"); 
    HashMap map = null; 
    try 
    { 
     ObjectName domCfg = (ObjectName) server.getAttribute(rs,"DomainConfiguration"); 

     ObjectName[] jdbcSysResources = 
     (ObjectName[]) server.getAttribute(domCfg, "JDBCSystemResources"); 

     map = new HashMap(); 
     for (int i=0 ; i<jdbcSysResources.length ; i++) 
     { 
      ObjectName jdbcResourceBean = (ObjectName) server.getAttribute(jdbcSysResources[i],"JDBCResource"); 

      ObjectName driverParamsBean =(ObjectName)server.getAttribute(jdbcResourceBean,"JDBCDriverParams"); 
      StringBuffer jdbcParams = new StringBuffer(); 
      ObjectName drvPropertiesBean = (ObjectName)server.getAttribute(driverParamsBean,"Properties"); 
      ObjectName[] drvProperties = (ObjectName[])server.getAttribute(drvPropertiesBean,"Properties"); 

      for(int j=0; j<drvProperties.length; j++) 
      { 
       String propName = (String)server.getAttribute(drvProperties[j],"Name"); 
       String propVal = (String)server.getAttribute(drvProperties[j],"Value"); 
       jdbcParams.append(propName).append("=").append(propVal).append(";"); 
      } 
      String strTest = drvProperties.toString(); 

      ObjectName dsnParams =(ObjectName)server.getAttribute(jdbcResourceBean,"JDBCDataSourceParams"); 
      String[] dsnParamNames = (String[])server.getAttribute(dsnParams,"JNDINames"); 
      map.put(dsnParamNames[0].toString(),jdbcParams.toString()); 

錯誤在Tomcat服務器: -

SystemCheck - Naming Exception: javax.naming.NameNotFoundException: 
Name [jmx/runtime] is not bound in this Context. Unable to find [jmx]. 
04/22 01:32 SystemAvailability -> MEL check failed - null 
java.lang.NullPointerException 

的Tomcat的context.xml --- - 數據源1 -
<資源名稱=」 jdbc/datasource1「auth =」Container「driverClassName =」com.microsoft.sqlserver.jdbc.SQLServerDriver「maxActive =」50「maxIdle =」10「maxWait =」10000「password =」mel01「type =」javax.sql.DataSource 「url =」jdbc:sqlserve數據源2 -
。 ..

< Resource name="jdbc/datasource2" auth="Container" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" maxActive="50" maxIdle="10" maxWait="10000"password="xxxx" type="javax.sql.DataSource" url="jdbc:sqlserver://xxxx:1460;databaseName=xxx" username="xxx" validationQuery="SELECT 1"/> 

的web.xml ---

<resource-ref> 
    <res-ref-name>jdbc/datasouce1</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>CONTAINER</res-auth> 
</resource-ref> 

<resource-ref> 
    <res-ref-name>jdbc/datasouce2</res-ref-name> 
    <res-type>javax.sql.DataSource</res-type> 
    <res-auth>CONTAINER</res-auth> 
</resource-ref> 
+0

看一看http://stackoverflow.com/questions/47676/tomcat-vs-weblogic-jndi-lookup –

回答

0

Tomcat不拿出一個JNDI經紀人,不同的Weblogic。要使代碼按原樣工作,您需要添加一些JNDI提供程序。

我推薦使用DI代替。 (例如)彈簧框架可以做到這一點。

Here's an example

+0

它是一個傳統應用程序。我不能在這裏使用DI/Spring。所以請讓我知道如何在tomcat中查找所有的JNDI。 –

相關問題