Ich habe ein Problem mit meinem Seam-Code und ich kann nicht scheinen, herauszufinden, was ich falsch mache. Es tut meinen Kopf in :) Hier ist ein Auszug aus dem Stack-Trace:Seam Problem: Feld Wert konnte nicht durch Reflexion festgelegt werden
Caused by: java.lang.IllegalArgumentException: Can not set java.lang.Long field com.oobjects.sso.manager.home.PresenceHome.customerId to java.lang.String
Ich versuche, einen Parametersatz auf meiner URL in einen meiner Bohnen geführt zu bekommen. Um dies zu tun, ich habe das in meinem pages.xml setzen folgende:
<page view-id="/customer/presences.xhtml">
<begin-conversation flush-mode="MANUAL" join="true" />
<param name="customerId" value="#{presenceHome.customerId}" />
<raise-event type="PresenceHome.init" />
<navigation>
<rule if-outcome="persisted">
<end-conversation />
<redirect view-id="/customer/presences.xhtml" />
</rule>
</navigation>
</page>
Meine Bohne beginnt wie folgt aus:
@Name("presenceHome")
@Scope(ScopeType.CONVERSATION)
public class PresenceHome extends EntityHome<Presence> implements Serializable {
@In
private CustomerDao customerDao;
@In(required = false)
private Long presenceId;
@In(required = false)
private Long customerId;
private Customer customer;
// Getters, setters and other methods follow. They return the correct types defined above
}
Schließlich wird die Verbindung, die ich verwenden Sie eine eine Seite der Verknüpfung Das nächste sieht so aus:
<s:link styleClass="#{selected == 'presences' ? 'selected' : ''}"
view="/customer/presences.xhtml" title="Presences" propagation="none">
<f:param name="customerId" value="#{customerId}" />
Presences
</s:link>
All dies scheint gut zu funktionieren. Wenn ich über den Link oben auf meiner Seite schwebe, bekomme ich eine URL, die etwa mit "? CustomerId = 123" endet. Daher wird der Parameter übergeben und es kann leicht in einen Long-Typ konvertiert werden. Aber aus irgendeinem Grund ist es nicht. Ich habe ähnliche Dinge schon früher in anderen Projekten gemacht und es hat dann funktioniert. Ich kann nicht sehen, was es jetzt nicht funktioniert.
Wenn ich das Element von meiner Seitendeklaration entferne, komme ich zur Seite gut durch.
Hat also jemand irgendwelche Gedanken?