我在applicaionContext.xml以下實例化的Spring bean容器(用於測試)外
<bean id="IbatisDataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="oracle.jdbc.OracleDriver"/>
<property name="url" value="jdbc:oracle:thin:@123.210.85.56:1522:ORCL"/>
<property name="username" value="mydb"/>
<property name="password" value="mydbpwd"/>
</bean>
<bean id="myMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="classpath:sql-map-config-oracle.xml"/>
<property name="dataSource" ref="IbatisDataSource"/>
</bean>
然後在我的代碼有:
ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
SqlMapClient sqlclient = (SqlMapClient) ctx.getBean("myMapClient");
做這給了我下面的錯誤:
Error creating bean with name 'myMapClient' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoClassDefFoundError: com/iplanet/ias/admin/common/ASException
我不明白爲什麼要找那個班?我正試圖在容器外做一切事情。所以它甚至不應該尋找那個類......但是隻是爲了使它工作我試着尋找類ASException,所以我可以把它放在類路徑上,但沒有我在哪裏可以找到ASException類。
任何指針?堆棧跟蹤的
圖片和我的編譯測試/運行測試庫 alt text http://i34.tinypic.com/ve63wp.jpg alt text http://i33.tinypic.com/15q6yhv.jpg alt text http://i36.tinypic.com/30cu9g8.jpg
編輯 解決方案: 儘管我以爲一切都在容器外......有一兩件事,不在容器外面。
通知物業configLocation:SQL-地圖配置,oracle.xml的
<property name="configLocation" value="classpath:sql-map-config-oracle.xml"/>
實際內容
<sqlMapConfig>
<settings enhancementEnabled="true" useStatementNamespaces="true" />
<transactionManager type="JDBC">
<dataSource type="JNDI">
<property name="DataSource" value="my/jndi/mydb" />
</dataSource>
</transactionManager>
<sqlMap resource="somemapping.xml"/>
</sqlMapConfig>
JNDI的東西並不需要在那裏!
SQL-地圖配置,oracle.xml應該簡單地:
<sqlMapConfig>
<settings enhancementEnabled="true" useStatementNamespaces="true" />
<sqlMap resource="somemapping.xml"/>
</sqlMapConfig>
用src下載完整的springframework。搜索src文件夾的字符串'AsException'在所有類....發現nada。 – Omnipresent 2009-11-12 15:51:13
所以仔細看看這個必須是容器特定的錯誤* iplanet *是服務器等的Sun品牌(Glassfish等)。如果你在Netbeans的Tomcat實例中測試這個「out of container」,看起來你仍然有一些容器參考。我認爲'ias'是iPlanet應用程序服務器,並且您正在收到'ASException'應用程序服務器異常。我會創建一個新的NetBeans項目導入代碼,Spring iBatis依賴項和Spring當然(及其依賴項)以及在Spring中沒有找到的代碼依賴項。 – 2009-11-12 17:51:21
沒有得到'ASEXception',但你知道我的意思 - 而不是得到:) – 2009-11-12 17:53:24