Try adding setters to your fields.

Cheers,
Nick.


Josh Canfield wrote:
  @InjectPage
  private Home home;


The error message seems a little strange, but the code above is injecting a
page called Home. Does that page load correctly if accessed directly?

Josh

On 11/3/07, Michael Bernagou <[EMAIL PROTECTED]> wrote:
Everything worked perfectly, but since I upgraded to T5.0.6, it fails for
an
understandable reason!

I replaced my html by tml and placed them in the right place. I upgrade
log4j to get the latest and add the new logging api (to avoid runtime
error).
The thing is really strange...

My Start.tml

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd";>
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>
<head>
<title>Paper and Pen Online - Identification</title>
</head>
<body>
<p style="color:red;"><b>${message}</b></p>
<t:form tracker="login">
  <t:errors/>
  <t:parameter name="password">
    <t:label for="password"/>
    <t:passwordfield t:id="password" t:validate="required" value="
login.password"/>
  </t:parameter>
</t:form>
<p>Si vous n'avez pas encore de compte, <t:pagelink
page="Register">crees-en
un!!</t:pagelink></p>
</body>
</html>


My Start.java

public class Start {
  private static final String SUCCESS = "Home";
  private static final String FAILURE = "Start";

  @ApplicationState
  private Login login;
  public Login getLogin() { return login; }

  @Persist
  private String message;
  public String getMessage() { return message; }

  @ApplicationState
  private User user;

  @InjectPage
  private Home home;

  @Inject
  private UserService userService;

  @Inject
  private ApplicationService applicationService;

  String onSuccess() {
    message = null;

    try {
      user = userService.getAuthenticatedUser(login.getLogin(),
login.getPassword());
      if (user != null) {
        home.setUser(user);
        UserLite userLite = new UserLite(user.getLogin());
        applicationService.makeOnline(userLite);
        home.setUsers(applicationService.getUserList().getUserList());
      }
      else {
        message = "Login ou Password inconnue. L'identification a
échoué.";
        return FAILURE;
      }
    }
    catch (PapoException pe) {
      message = "La procedure d'identification a rencontré un probleme
!!";
      return FAILURE;
    }
    return SUCCESS;
  }
}

And the error :

Could not convert 'message' into a component parameter binding:
java.lang.NoClassDefFoundError: papo/pages/Home
location context:Start_fr.tml, line 8, column 363<html xmlns:t="
http://tapestry.apache.org/schema/tapestry_5_0_0.xsd";>4<head>5<title>Paper
and Pen Online - Identification</title>6</head>7<body>8<p
style="color:red;"><b>${message}</b></p>9<t:form
tracker="login">10<t:errors/>
11 <t:parameter name="password">12 <t:label
for="password"/>13<t:passwordfield t:id="password"
t:validate="required" value="
login.password"/>So, the tml is found, read, interpreted but for a reason
I
don't understand it refer to my class Home which is in the same package
than
my class Start.
I have a Register page (tml + java) and it give me exactly the same error!

No error at runtime, no compilation error (Inject are the new Inject, for
example).

Thanks

--
Michael Bernagou
Java Developper





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to