2017-06-27 10 views
0

Tomcatサーバーにプロジェクトを展開しようとしていましたが、サーバーを起動しようとするたびにこのエラーが発生します。私のカタリナログに:org.springframework.beans.factory.BeanCreationException:名前が 'XXX'のBeanを作成中にエラーが発生しました

Exception encountered during context initialization - cancelling refresh attempt 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 
'mnpTranslationServiceImpl' defined in URL [file:/opt/tomcat/webapps/axis2/WEB-INF/springjdbc.xml]: 
Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'mnpTranslationDAO' of bean class [com.e_horizon.jdbc.mnpTranslation.mnpTranslationServiceImpl]: 
Bean property 'mnpTranslationDAO' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter? 

ここで私はここで、エラーのDAOファイルだspringjdbc.xml

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" 
xmlns:tx="http://www.springframework.org/schema/tx" 
xsi:schemaLocation=" 
http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd 
http://www.springframework.org/schema/tx 
http://www.springframework.org/schema/tx/spring-tx-2.0.xsd 
http://www.springframework.org/schema/aop 
http://www.springframework.org/schema/aop/spring-aop-2.0.xsd"> 



<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" 
    destroy-method="close"> 
    <property name="driverClass" value="com.mysql.jdbc.Driver" /> 
    <property name="jdbcUrl" value="jdbc:mysql://192.168.XX.X1:3306/msdp" /> 
    <property name="user" value="root" /> 
    <property name="password" value="ehorizon" /> 
    <property name="minPoolSize" value="1" /> 
    <property name="maxPoolSize" value="500" /> 
    <property name="numHelperThreads" value="5" /> 

    <property name="initialPoolSize" value="2" /> 
    <property name="autoCommitOnClose" value="true" /> 
    <property name="idleConnectionTestPeriod" value="60" /> 
    <property name="maxIdleTime" value="1200" /> 
    <property name="acquireRetryAttempts" value="2" /> 
</bean> 

<bean id="dataSourceHD" class="com.mchange.v2.c3p0.ComboPooledDataSource" 
    destroy-method="close"> 
    <property name="driverClass" value="com.mysql.jdbc.Driver" /> 
    <property name="jdbcUrl" value="jdbc:mysql://192.168.XX.X2:3306/hd" /> 
    <property name="user" value="teligent" /> 
    <property name="password" value="teligent" /> 
    <property name="minPoolSize" value="1" /> 
    <property name="maxPoolSize" value="500" /> 
    <property name="numHelperThreads" value="5" /> 

    <property name="initialPoolSize" value="2" /> 
    <property name="autoCommitOnClose" value="true" /> 
    <property name="idleConnectionTestPeriod" value="60" /> 
    <property name="maxIdleTime" value="1200" /> 
    <property name="acquireRetryAttempts" value="2" /> 
</bean> 

<bean id="mpp2SubscribersDAO" class="com.e_horizon.jdbc.mpp2Subscriber.Mpp2SubscribersDAO"> 
    <property name="dataSource"> 
     <ref bean="dataSource" /> 
    </property> 
</bean> 

<bean id="mpp2SubscribersService" 
    class="com.e_horizon.jdbc.mpp2Subscriber.Mpp2SubscribersServiceImpl"> 
    <property name="mpp2SubscribersDAO"> 
     <ref bean="mpp2SubscribersDAO" /> 
    </property> 
</bean> 

<bean id="mnpTranslationDAO" class="com.e_horizon.jdbc.mnpTranslation.mnpTranslationDAO"> 
    <property name="dataSource"> 
     <ref bean="dataSourceHD" /> 
    </property> 
</bean> 

<bean id="mnpTranslationServiceImpl" class="com.e_horizon.jdbc.mnpTranslation.mnpTranslationServiceImpl"> 
    <property name="mnpTranslationDAO"> 
     <ref bean="mnpTranslationDAO" /> 
    </property> 
</bean> 

`

という名前の私bean.xmlです書き込み可能でないようAYS:

セッターとゲッター(mnpTranslation.java)が含まれて私のモデルの追加
package com.e_horizon.jdbc.mnpTranslation; 

import java.util.HashMap; 
import java.util.Map; 

import org.springframework.jdbc.core.RowMapper; 
import org.springframework.jdbc.core.simple.SimpleJdbcInsert; 

import com.e_horizon.www.jdbc.common.BaseDAO; 

public class mnpTranslationDAO extends BaseDAO { 
    private SimpleJdbcInsert jdbcCall; 

    public static String TABLE = "MNP_TRANSLATION"; 
    public static String FIELD_MSISDN = "msisdn"; 
    public static String FIELD_ROUTING_NUMBER = "routing_number"; 
    public static String FIELD_LAST_UPDATE = "last_update"; 
    public static String FIELD_ACTION = "action"; 

    protected RowMapper getObjectMapper() { 
     return new mnpTranslationMapper(); 
    } 

    public void save (mnpTranslation mnp) { 
     this.jdbcCall = this.getSimpleJdbcInsert().withTableName(TABLE); 
     Map<String, Object> parameters = new HashMap<String, Object>(); 

     parameters.put(FIELD_MSISDN, mnp.getMsisdn()); 
     parameters.put(FIELD_ROUTING_NUMBER, mnp.getRouting_number()); 
     parameters.put(FIELD_LAST_UPDATE, mnp.getLast_update()); 
     parameters.put(FIELD_ACTION, mnp.getAction()); 

     jdbcCall.execute(parameters); 
    } 
} 

package com.e_horizon.jdbc.mnpTranslation; 

import java.sql.Timestamp; 

public class mnpTranslation { 
private String msisdn; 
private String routing_number; 
private Timestamp last_update; 
private String action; 

    public void setMsisdn (String msisdn) { 
     this.msisdn = msisdn; 
    } 

    public String getMsisdn() { 
     return this.msisdn; 
    } 

    public void setRouting_number (String routing_number) { 
     this.routing_number = routing_number; 
    } 

    public String getRouting_number() { 
     return this.routing_number; 
    } 

    public void setLast_update (Timestamp last_update) { 
     this.last_update = last_update; 
    } 

    public Timestamp getLast_update() { 
     return this.last_update; 
    } 

    public void setAction (String action) { 
     this.action = action; 
    } 

    public String getAction() { 
     return this.action; 
    } 
} 

[編集]を、あなたはできるように、私は私のjavaファイルの残りの部分を追加しています私が今扱っているものをもっと見てください。これを確認してくれてありがとう。

mnpTranslationService.java:

package com.e_horizon.jdbc.mnpTranslation; 

public abstract interface mnpTranslationService { 
    public abstract void save (mnpTranslation mnp); 
} 

mnpTranslationServiceImpl.java:

package com.e_horizon.jdbc.mnpTranslation; 

public class mnpTranslationServiceImpl { 
    private mnpTranslationDAO mnpTranslationDAO; 

    public void save (mnpTranslation mnp) { 
     this.mnpTranslationDAO.save(mnp); 
    } 
} 

mnpTranslationMapper.java:

package com.e_horizon.jdbc.mnpTranslation; 

import java.sql.ResultSet; 
import java.sql.SQLException; 

import org.springframework.jdbc.core.RowMapper; 

public class mnpTranslationMapper implements RowMapper { 
    public Object mapRow (ResultSet result, int dex) throws SQLException { 
     mnpTranslation mnp = new mnpTranslation(); 

     mnp.setMsisdn(result.getString("msisdn")); 
     mnp.setRouting_number(result.getString("routing_number")); 
     mnp.setLast_update(result.getTimestamp("last_update")); 
     mnp.setAction(result.getString("action")); 

     return mnp; 
    } 
} 

あなたが見る必要がある何かがあるのなら、私に知らせてください。私は喜んでそれをすぐに投稿します。どんな助けでも大歓迎です。

+0

メッセージはかなり明確である:Beanクラスの無効なプロパティ「mnpTranslationDAOは」[com.e_horizo​​n.jdbc.mnpTranslation.mnpTranslationServiceImpl] – Jens

+0

は、なぜあなたは 'コンポーネント-scan'を行ういけないあなたは、古いバージョンスプリングを使用していますか? – soorapadman

+0

私が使っている春が最新かどうか分かりません。この「コンポーネントスキャン」についてもっと強調してもらえますか?私はこれに慣れていないようです。 – Uzi

答えて

1

エラーメッセージには、mnpTranslationServiceImplクラスに問題があると記載されています。

参照エラーメッセージ

ビーンのプロパティ「mnpTranslationDAOは」書き込み可能でないか、または無効なsetterメソッドを持っています。 setterのパラメータ型がgetterの戻り値の型と一致していますか?

+0

はいわかりました。しかし、私は繰り返し私のセッターとゲッターをチェックし、私が知る限り、すべてのタイプが適切な場所にあります。私は気づいていないことを逃したかもしれません。私はあなたが見ることができるように私のモデルを掲載します。 – Uzi

+0

あなたはimplクラスを共有できますか?また、getterとsetterの名前があなたのdaoタイプの変数名と一致するかどうかを確認してください。 – DDS

+0

こんにちは、私は残りのJavaファイルを追加しました。これをチェックするのに時間をとってくれてありがとう。 – Uzi

関連する問題