我已经构建了一些POM文件来将EAR部署到Glassfish V3.
它适用于首次部署,但在下一次部署时,它已崩溃:
[INFO] asadmin --host localhost --port 4848 --user admin --passwordfile C:/Documents and
Settings/Olivier/Local Settings/Temp/mgfp8179073735921963426.tmp --interactive=false --echo=true --terse=true d
eploy --name sim --force=false --precompilejsp=false --verify=false --generatermistubs=false --availabilityenabled=false --asyncreplication=true --keepreposdir=false --keepfailedstubs=false --isredepl
oy=false --logreportederrors=true --upload=false "E:\\workspaces\\java\\sim_final\\ear\\target\\ear-0.0.1-SNAPSHOT.ear"
[ERROR] remote failure: Erreur lors du dÚploiementá: L'application portant le nom sim est dÚjÓ inscrite. SpÚcifiez que le redÚploiement doit Ûtre forcÚ ou redÚployez l'application. Sinon, s'il s'agit
d'un nouveau dÚploiement, choisissez un nom diffÚrent. Pour plus d'informations, consultez le fichier server.log.
Run Code Online (Sandbox Code Playgroud)
总而言之,我可以部署一次,但不能同时部署两次.
这是因为您可以看到,force参数设置为false(--force …
由于这个BalusC帖子,我尝试在另一个托管bean中获取托管bean的实例:这里
使用findBean方法,它很棒,我检索我的bean,但ManagedProperty我无法得到我的bean.
我要注入的bean是这个:
@ManagedBean(name="locale")
@SessionScoped
public class LocaleBean {
private String locale;
public String getLocale() {
return locale;
}
public void setLocale(String locale) {
FacesContext.getCurrentInstance().getViewRoot().setLocale(new Locale(locale));
this.locale = locale;
}
}
Run Code Online (Sandbox Code Playgroud)
所以,当我打电话给LocaleBean locale = findBean("locale");我的loginbean时,它的工作原理是:
@ManagedProperty("#{locale}") // OR localeBean, LocaleBean...
private LocaleBean locale;
Run Code Online (Sandbox Code Playgroud)
不起作用......
com.sun.faces.mgbean.ManagedBeanCreationException:Impossibledecréerlebeangéré«login».Lesproplèmessuivantsontétédétectés: - Lapropriété«locale»dubeangéré«login»n'existe pas.
告诉我为什么 ?
我想知道是否有一个技巧来验证表单中的所有字段除外?
就像是 :
<p:remoteCommand process="@form^F100" .... />
Run Code Online (Sandbox Code Playgroud)
显然,这不起作用......
如果我在表单中有100个字段,是否有任何方法或快捷方式来验证所有例外F100?
我注定要使用
<p:remoteCommand process="F1 F2 F3 F4 F5 F6 .... F99" .... />
Run Code Online (Sandbox Code Playgroud)
?
我有很多EntityManager,每个模式我有一个(我使用entity-mappings文件映射EMs与模式).有用.
当我使用@NamedQuery它的工作就像一个魅力,但当我使用@NamedNativeQuery架构时不使用.我必须符合条件SELECT foo FROM schema.table.
这是正确的行为吗?
我认为参数@NamedNativeQuery动态传递模式是不可能的(我相信只有列可以是动态而不是表或模式或其他任何东西)所以我如何使用@NamedNativeQuery动态模式呢?
我是JSF的新手,我想了解为什么页面重定向和页面转发不会产生相同的安全渲染.
我有一个调用支持方法的JSF按钮:
<h:form>
<!-- content... -->
<p:commandButton action="#{login.play}" ... />
</h:form>
Run Code Online (Sandbox Code Playgroud)
登录托管bean
public String play() {
...
//forward implementation
return "play";
}
public String play() {
...
//redirect implementation
return "play?faces-redirect=true";
}
Run Code Online (Sandbox Code Playgroud)
我的页面play.xhtml很安全.只有角色admin或者user可以访问它但是使用我的第play一种方法,安全约束没有启用,我可以访问.它为什么不同?
我有Java枚举类型,我想从myEnum.name()相关的i18n值获得.
我测试过:
<h:outputLabel value="#{rb.#{login.myEnum}}" />
Run Code Online (Sandbox Code Playgroud)
(rb是我在JSF faces-config.xml中定义的i18n变量)
但它不起作用.
我想EL表达式将被转换成#{rb.KEY1}之后key1或clé1或schlüssel1等,如果选择的区域设置为英语,法语或德语.
我该怎么做?
如何将JS值传递给组件中的属性嵌套标签?
我有这个代码:
<p:remoteCommand .....>
<f:attribute name="galaxie" value="jstest()" />
</p:remoteCommand>
Run Code Online (Sandbox Code Playgroud)
而我的简单JS jstest功能:
function jstest(){
return "foo";
}
Run Code Online (Sandbox Code Playgroud)
当我在支持bean中测试galaxie的属性值时,我jstest()没有foo.
我想回滚事务不是在EJB内部而是在JSF托管bean内部.在EJB内部我们可以使用SessionContext.setRollBackOnly()但是我可以在托管bean中使用什么?
@Stateless
@Local(AccountLocal.class)
public class AccountBean implements AccountLocal {
public void test1() throws CustomException(){
...
}
public void test2() throws CustomException(){
...
throw new CustomException();
}
public void test3() throws CustomException(){
...
}
public void all() throws CustomException(){
test1();
test2();
test3();
}
}
Run Code Online (Sandbox Code Playgroud)
在我的托管bean中:
@SessionScoped
public class LoginBean implements Serializable{
public void test(){
try{
accountBean.test1();
accountBean.test2();
accountBean.test3();
}catch(CustomException e){
// WHAT HERE TO ROLLBACK TRANSACTION ?
}
}
}
Run Code Online (Sandbox Code Playgroud)
编辑:我怎么能保证的是,如果一个test1,test2或test3回滚,其他人将回滚呢?
我测试了这段代码, …
使用 JSF 创建按钮以调用 JS 函数的首选方法是什么?
其实我用:
<p:button onclick="myJSFunction();" href="#"/>
Run Code Online (Sandbox Code Playgroud)
但我的网址后缀为锚符号 ( #)。
是否有另一种推荐的方法来创建不会重新加载/导航到 URL 而是调用 JS 函数的按钮?
我正在尝试使用Glassfish提供的计时器服务.因此,我必须EJB__TIMER__TBL在Glassfish中创建一个名为并配置jdbc资源的表.
我想将这个表存储在postgreSQL上的一个名为的模式上glassfish.所以我的ddl是这个(我将BLOB类型替换为BYTEA):
CREATE SCHEMA glassfish;
CREATE TABLE glassfish.EJB__TIMER__TBL (
CREATIONTIMERAW BIGINT NOT NULL,
BLOB BYTEA,
TIMERID VARCHAR(255) NOT NULL,
CONTAINERID BIGINT NOT NULL,
OWNERID VARCHAR(255) NULL,
STATE INTEGER NOT NULL,
PKHASHCODE INTEGER NOT NULL,
INTERVALDURATION BIGINT NOT NULL,
INITIALEXPIRATIONRAW BIGINT NOT NULL,
LASTEXPIRATIONRAW BIGINT NOT NULL,
SCHEDULE VARCHAR(255) NULL,
APPLICATIONID BIGINT NOT NULL,
CONSTRAINT PK_EJB__TIMER__TBL PRIMARY KEY (TIMERID)
);
DROP ROLE IF EXISTS glassfish;
CREATE ROLE glassfish WITH NOINHERIT LOGIN PASSWORD '...'; …Run Code Online (Sandbox Code Playgroud) jsf ×7
primefaces ×2
button ×1
deployment ×1
ejb ×1
el ×1
glassfish ×1
glassfish-3 ×1
java-ee ×1
javascript ×1
jpa ×1
jsf-2 ×1
managed ×1
maven ×1
nativequery ×1
onclick ×1
postgresql ×1
schema ×1
security ×1
timer ×1
transactions ×1