2017-08-01 45 views
0

你好我使用Spring項目面臨着以下錯誤,並與Oracle ojdbc14-1.4.jar Java版本1.8和Tomcat 7.0.37嚴重:錯誤而註冊的Oracle JDBC診斷性的MBean

當我直接在Oracle執行SQL其正常工作不知道我在Spring JDBC中缺少什麼。從行家

Spring配置文件

<bean id="dataSourceDB" class="org.apache.tomcat.jdbc.pool.DataSource" 
     destroy-method="close"> 
     <property name="driverClassName" value="oracle.jdbc.OracleDriver" /> 
     <property name="url" value="${database.url_revdbo}" /> 
     <property name="username" value="${database.username}" /> 
     <property name="password" value="${database.password}" /> 
     <property name="initialSize" value="${database.initialSize}" /> 
    <property name="maxActive" value="${database.maxActive}" /> 
    <property name="minIdle" value="${database.minIdle}" /> 
    <property name="maxIdle" value="${database.maxIdle}" /> 
    <property name="maxWait" value="${database.maxWait}" /> 
    <property name="testWhileIdle" value="${database.testWhileIdle}" /> 
    <property name="timeBetweenEvictionRunsMillis" value="${database.timeBetweenEvictionRunsMillis}" /> 
    <property name="validationQuery" value="${database.validationQuery}" /> 
</bean> 


<bean id="namedParameterJdbcTemplateDB"" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate"> 
    <constructor-arg ref="dataSourceDB" /> 
</bean> 

我也嘗試過其他Oracle驅動程序版本的Java DAO層內部

 private String INSERT_REVENUE_DATA= "INSERT INTO table_test (BATCH_ID,status) values ('1234','new')"; 


    @Autowired 
    @Qualifier("namedParameterJdbcTemplateDB") 
    private NamedParameterJdbcTemplate namedParameterJdbcTemplateDB; 

     Map<String, Object> paramMap = new HashMap<>(); 
     //paramMap.put("field1", "1111"); 
     //paramMap.put("field2", "new"); 

     namedParameterJdbcTemplateRevport.update(INSERT_DATA, paramMap); 


oracle.jdbc.driver.OracleDriver registerMBeans 
SEVERE: Error while registering Oracle JDBC Diagnosability MBean. 
    javax.management.MalformedObjectNameException: Invalid character '\n' in value part of property 
    at javax.management.ObjectName.construct(ObjectName.java:618) 
    at javax.management.ObjectName.<init>(ObjectName.java:1382) 
    at oracle.jdbc.driver.OracleDriver.registerMBeans(OracleDriver.java:303) 
    at oracle.jdbc.driver.OracleDriver$1.run(OracleDriver.java:213) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at oracle.jdbc.driver.OracleDriver.<clinit>(OracleDriver.java:209) 
+1

你可以分享你的代碼嗎? –

+0

您將需要提供更多關於您正在執行的操作的更多信息,從而導致此異常。這條消息似乎是說在某處不存在一個換行符,但沒有人會在沒有某種上下文的情況下告訴你。我建議你閱讀[我如何問一個好問題?](https://stackoverflow.com/help/how-to-ask),然後編輯你的問題,包括從那裏的建議。 – DaveyDaveDave

+0

*屬性值部分中的\ n'字符無效* –

回答

0

你得到這個錯誤:

javax.management.MalformedObjectNameException: 
Invalid character '\n' in value part of property 

,因爲你必須在屬性兩個引號:

<bean id="namedParameterJdbcTemplateDB"" 
//------------------------------------^^ 

你必須只使用一個