初の「右」ステートフルセッションBeanを取得できませんでした:私はあなたにすべてのメリークリスマスを望む:)は、サーブレット内のすべての
サーブレットでステートフルセッションBeanを受けながら、私はいくつかの問題を持っています。単にJSFによって設定されるべき値はnullです。私が持っていることはJSFページ+ 1つのステートフルセッションBean +一時的なプロパティBeanクラス+サーブレットです:
JSF2.0ページの最初の部分:
<h:form id="set_args">
<h2>Prosze wprowadzic wartosci: (w przyszlosci...)</h2>
<div class="group">
<h:outputLabel for="start" value="Wybierz punkt startowy:" />
<h:inputText id="start" value="#{properties.start}" />
</div>
<div class="group">
<h:outputLabel for="stop" value="Wybierz punkt docelowy:" />
<h:inputText id="stop" value="#{properties.end}" />
</div>
<div class="group">
<h:commandButton id="start_sim"
action="#{SimulationBean.setValues()}" value="Rozpocznij" />
</div>
</h:form>
Propetiesクラス:
import javax.enterprise.context.RequestScoped;
import javax.inject.Named;
@RequestScoped
@Named
public class Properties {
private String start;
private String end;
public String getStart() {
return start;
}
public void setStart(String start) {
this.start = start;
}
public String getEnd() {
return end;
}
public void setEnd(String end) {
this.end = end;
}
}
そして、EJB:
@Named("SimulationBean")
@Stateful
@SessionScoped
@NamedQueries({ @NamedQuery(name = "findAllJunctions", query = "SELECT j FROM Junction") })
public class SimulationBean implements SimulationBeanLocal {
@Inject
private Properties properties;
private String start;
private String end;
public String getStart() {
return start;
}
public void setStart(String start) {
this.start = start;
}
public String getEnd() {
return end;
}
public void setEnd(String end) {
this.end = end;
}
public void setValues() {
this.start = this.properties.getStart();
this.end = this.properties.getEnd();
System.out.println("Print VALUES:");
System.out.println(this.properties.getStart());
System.out.println(this.properties.getEnd());
}
とサーブレット:
@WebServlet("/SimulationServlet")
@EJB(name="SimulationBean", beanInterface = SimulationBeanLocal.class)
public class SimulationServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void processRequest(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
Context c;
try {
c = new InitialContext();
SimulationBeanLocal bean = (SimulationBeanLocal) c.lookup("java:module/SimulationBean");
サーブレットを呼び出すと、 "start" end "end"プロパティでnull値が取得されます。 EverthingはWARにパックされています。
私は本当に間違っているのですか?:)私は手がかりを感謝します。おかげさまで
質問には関係ありません:私はSFSBで '@ NamedQueries'を使うべきではありません。 JPAの責任であり、ここで説明するようにJPA EntityまたはMapped Superclassで '@ NamedQueries' /' @ NamedQuery'を使用する必要があります:[NamedQuery(Java EE 6)](http://docs.oracle.com/javaee/6/api /javax/persistence/NamedQueries.html)。 WesołychŚwiąt:-) –
はい、あなたは絶対に正しいです、それは使用されていないので、捨てるべきですが、私は単純に投稿していませんでした。 – visionary