Printemps Bean propriété 'xxx' est pas accessible en écriture ou n'est pas valide méthode de définition

Je suis un Printemps débutant avec une apparence simple, Printemps problème. J'ai travaillé sur cela pendant des heures sans succès. Ici est l'exception, suivi par le code (merci d'avance):

Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'graphiteWriterSession' defined in file [/home/user/resources/jmxtrans.graphite.xml]: Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'host' of bean class [com.example.ExampleClass]: Bean property 'host' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?

Mon haricot définitions:

<bean id="graphiteWriterSession" class="com.example.ExampleClass">
    <property name="host" value="host.example.com" />
    <property name="port" value="2023" />
    <property name="namespacePrefix" value="apps.foo.bar" />
    <property name="debug" value="true" />
</bean>

<bean id="jmxtransSession" class="com.example.MainMethodClass" factory-method="getInstance">
    <property name="graphiteWriterSession" ref="graphiteWriterSession" />
</bean>

L'extrait de code:

package com.example.ExampleClass;
import com.googlecode.jmxtrans.model.output.GraphiteWriter;

public class ExampleClass {

   private static final long   serialVersionUID = 1L;
   private String              host;
   private int                 port;
   private GraphiteWriter      gw;

  public ExampleClass() {
  }

  public GraphiteWriter getWriter() {
    gw = new GraphiteWriter();
    gw.addSetting(GraphiteWriter.PORT, port);
    gw.addSetting(GraphiteWriter.HOST, host);
    return gw;
  }

  //=====================================================
  //set/get methods for Carbon host.
  //Plugged into Spring application-context file.
  //=====================================================
  public void setCarbonHost( String host ) {
       this.host = host;
  }

  public String getCarbonHost() {
       return host;
  }
  //=====================================================


  //=====================================================
  //set/get methods for Carbon port.
  //Plugged into Spring application-context file.
  //=====================================================
  public void setCarbonPort( int port ) {
      this.port = port;
  }

  public int getCarbonPort() {
      return port;
  }
  //=====================================================
}

Je ne comprend pas le pilote (méthode main contenant) de classe ici. Bien que la classe du pilote dépend de la classe ci-dessus, le pilote de la classe elle-même n'a pas un problème (je ne crois pas).

L'erreur ci-dessus montre "l'hôte" de la propriété comme ayant le problème, mais, comme vous vous en doutez, le "port" de la propriété a le même problème (il se trouve que "l'hôte" de la propriété est évaluée en premier).

Quelqu'un peut me dire où je vais mal? N'hésitez pas à expliquer si vous le souhaitez, tant que je ne suis pas un Printemps de la personne, en soi. Merci.

InformationsquelleAutor NYCeyes | 2014-02-06