2017-08-01 54 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"" 
//------------------------------------^^ 

你必须只使用一个