2016-07-23 6 views
0

Gerade erst begonnen tun meine ersten Schritte mit FacesFlow mit Glassfish 4.1 (dh mit Mojarra), und wenn mein Flow Aufruf bekomme ich einen Fehler namensWELD-001303: Keine aktiven Kontexte für Bereichstyp javax.faces.flow.FlowScoped

[SEVERE] [] [javax.enterprise.resource.webcontainer.jsf.application] ... Error Rendering View[/register/register.xhtml] 
org.jboss.weld.context.ContextNotActiveException: WELD-001303: No active contexts for scope type javax.faces.flow.FlowScoped 
    at org.jboss.weld.manager.BeanManagerImpl.getContext(BeanManagerImpl.java:708) 

Mehrere andere hatten diesen Fehler auch, wie ich im Web sehen kann, aber die Lösungen, die für andere arbeiteten, funktionieren irgendwie nicht für mich (siehe unten).

Ich versuchte auch @SessionScoped, die funktioniert. Es ist also verwandt mit @FlowScoped.

Zu was ich in einem Buch gelesen habe, das ich benutze, um mich auf die Geschwindigkeit zu bringen, sollte ich von der Kodierung und Config Ende ok sein, da gemäß API @FlowScoped CDI basiert und ich den folgenden Code an meinem Backbone/Controller verwende.

@Named 
@FlowScoped(value="register") 
public class RegisterController implements Serializable { 

Ich habe einen Fluss namens Register, deren Seiten in einem dirctory gelegen/Register und die erste Seite des Strömungs named register.xhtml

Schnipsel Nach ich auch sowohl als register/register-flow.xml Config-Datei versucht, als WEB-INF/faces-config.xml ohne Erfolg.

<?xml version="1.0" encoding="UTF-8"?> 
<faces-config 
    xmlns="http://xmlns.jcp.org/xml/ns/javaee" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd" 
    version="2.2"> 
    <flow-definition id="register"> 
     <flow-return id="overview"> 
      <from-outcome>/index</from-outcome> 
     </flow-return> 
    </flow-definition> 
</faces-config> 

Was ich bisher versucht: fand ich einen Beitrag darauf hindeutet, dass <Context antiJARLocking="true" path="/PROJEST_NAME"/> das Problem lösen würde, aber nach dem Tag googeln es stellt sich seinen einen veralteten Tomcat-Tag aus.

Die Änderung @Named zu @ManagedBean hat nicht wirklich geholfen, wie auf einer Seite vorgeschlagen. Ich könnte die Seiten öffnen, aber die Daten in meiner Controller-Klasse wären nicht mehr verfügbar, wenn die nächste Seite des Ablaufs aufgerufen wird. Aber @ManagedBean sollte nicht wirklich funktionieren, ich denke, seit @FlowScoped ist CDI basiert.

Ein weiterer Beitrag vorgeschlagen, um sicherzustellen, dass javax.faces.CLIENT_WINDOW_MODE aktiviert ist. Ich habe versucht, dass die folgenden meine web.xml über das Hinzufügen, aber ohne Erfolg

<context-param> 
<param-name>javax.faces.CLIENT_WINDOW_MODE</param-name> 
<param-value>url</param-value> 
</context-param> 

anderen vorgeschlagene Glassfish 4.x zu verwenden, die ich schon tun

Irgendwelche Ideen?

+0

Haben Sie eine Beispiel-App, die das reproduzieren kann? –

Antwort

-1

Mit Glassfish 4.1 mindestens müssen Sie die cdi-api.jar Verzeichnis-Bibliothek hinzufügen.

Glassfish umfasst die Schweiß osgi-bundle.jar, aber es braucht auch cdi-api.jar zu arbeiten, weil die CDI Bean Tive nicht in der weld-osgi... sind so stellen Sie sicher, dass Sie es haben, wenn nicht sein hier:

[gf_installation_path]/glassfish/modules/cdi-api.jar

Dies werden Sie auf die Pakete mit CDI Beans dh verwendet zugreifen, javax.enterprise.context.*

Wenn nicht, dann wahrscheinlich

  1. this could help
  2. and this

GL!

Verwandte Themen