天天看點

項目中遇到的問題總結

1、tomcatPluginV31插件安裝後在eclipse下找不到tomcat插件的顯示。

解決方法D:/eclipse>java -jar startup.jar -clean

2、ibmJdk問題

如果啟動的時候沒有足夠大的記憶體給于JDK使用就會報錯

JVMDG217: Dump Handler is Processing Signal 11 - Please Wait.

JVMDG303: JVM Requesting Java core file

JVMDG304: Java core file written to d:/MyEclipse5.1.0/eclipse/javacore.20070706.200928.3760.txt

JVMDG215: Dump Handler has Processed Exception Signal 11.

解決辦法:啟動的時候加大JVM的啟動使用記憶體數

可以在eclipse裡面設定jvm的時候設定一下啟動的參數就可以了。

-Xms128M -Xmx256M

3、db2時間問題

在更新DB2時間時候,因是使用了DB2中timeStamp 類型,是以時間格式必須是 "yyyy-MM-dd HH:mm:ss"

4、db2要用相對應安裝的db2自帶的jdbc驅動(db2的jdbc驅動相容性不好)。

5、aix上使用jni問題

在AIX上使用jni出現了很多問題,我來說一下其中的所在。

我們自己把原有的兩個so檔案的函數封裝了起來。當我們把三個so都放在java.libary.path下面的時候。

報錯說找到不到其他兩個so,經過反複測試,終于知道了原因。要把其他兩個so檔案放置到web伺服器啟動的檔案夾下面才可以。

比如tomcat,就要放置在tomcat/bin目錄下面。 

6、eclipse編譯錯誤

如果使用了jdk1.4.2但是在preferences -->java-->compiler使用了5.0就會出現下面的錯誤資訊

08-29 21:32:33,312 [main] ERROR (StandardContext.java:3714) - Error configuring application listener of class com.resoft.recis.sys.ContextFactoryListener

java.lang.UnsupportedClassVersionError: com/resoft/recis/sys/ContextFactoryListener (Unsupported major.minor version 49.0)

7、提高hibernate效率

如果在hibernate.cfg.xml中沒有設定<property name="hibernate.cache.use_query_cache">true</property>

spring裡面

  <property name="hibernateProperties">

   <props>

    <prop key="hibernate.dialect">org.hibernate.dialect.DB2Dialect</prop>

    <prop key="hibernate.cache.use_query_cache">true</prop>

    <prop key="hibernate.query.factory_class">org.hibernate.hql.ast.ASTQueryTranslatorFactory</prop>

   </props>

  </property>

8、hibernate使用連接配接池org.apache.commons.dbcp.BasicDataSource。

org.apache.commons.dbcp.BasicDataSource的最大連接配接數是8

是不能滿足需要的是以要在spring裡面配置這個選項為40就足夠用了,另外還要加大web伺服器的記憶體,這樣能提高效率。

 <bean id="dataSource1" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

  <property name="driverClassName">

   <value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>

  <property name="url">

   <value>jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=test</value>

  <property name="username">

   <value>test</value>

  <property name="password">

  <property name="maxActive">

   <value>40</value>

  <property name="maxIdle">

   <value>20</value>

 </bean>

9  SQL Error: 156, SQLState: HY000

錯誤顯示:

17:24:34,992 ERROR JDBCExceptionReporter:58 - [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]在關鍵字 'ORDER' 附近有文法錯誤。 17:24:34,992  WARN JDBCExceptionReporter:57 - SQL Error: 156, SQLState: HY000 17:24:35,002 ERROR JDBCExceptionReporter:58 - [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]在關鍵字 'ORDER' 附近有文法錯誤。 17:24:35,022  WARN JDBCExceptionReporter:34 - SQL Warning: 0, SQLState: net.sf.hibernate.exception.GenericJDBCException : could not initialize collection: [com.Customer.orders#2]

部分原檔案: order.hbm.xml

< hibernate-mapping >   < class name = "com.Order" table = "ORDER" >      < id name = "id" type = "long" column = "ID" >         < generator class = "increment" />       </ id >    < property name = "orderNumber" type = "string" >         < column name = "ORDER_NUMBER" length = "15" />       </ property >             < many-to-one         name = "customer"         column = "CUSTOMER_ID"         class = "com.Customer"         outer-join = "true"          />

原因分析:因為 order 表在 SQL 2000 資料庫中已經定義了,如果使用者在定義了 order 表,并且程式對該表進行連接配接等操作就會出錯

問題解決:将 引用 order 處改為 [order]

10 Can't connect to X11 window server using ':0.0' as the value of the DISPLAY variable

在程式中增加 -Djava.awt.headless=true

tomcat中 JAVA_OPTS='-Xms1024m -Xmx2048m -Djava.awt.headless=true'