小编Oli*_* J.的帖子

使用Maven在Glassfish上进行热部署

我已经构建了一些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 …

deployment maven glassfish-3

5
推荐指数
1
解决办法
1615
查看次数

在另一个托管bean中获取托管bean引用

由于这个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.

告诉我为什么 ?

jsf managed java-ee jsf-2

5
推荐指数
1
解决办法
4638
查看次数

JSF和部分验证

我想知道是否有一个技巧来验证表单中的所有字段除外?

就像是 :

<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)

jsf primefaces

5
推荐指数
1
解决办法
2751
查看次数

管理@NamedNativeQuery和架构

我有很多EntityManager,每个模式我有一个(我使用entity-mappings文件映射EMs与模式).有用.

当我使用@NamedQuery它的工作就像一个魅力,但当我使用@NamedNativeQuery架构时不使用.我必须符合条件SELECT foo FROM schema.table.

这是正确的行为吗?

我认为参数@NamedNativeQuery动态传递模式是不可能的(我相信只有列可以是动态而不是表或模式或其他任何东西)所以我如何使用@NamedNativeQuery动态模式呢?

schema jpa nativequery

4
推荐指数
2
解决办法
4697
查看次数

JSF安全性:页面重定向与页面转发

我是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一种方法,安全约束没有启用,我可以访问.它为什么不同?

security jsf

4
推荐指数
1
解决办法
2083
查看次数

如何在EL内嵌EL?

我有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}之后key1clé1schlüssel1等,如果选择的区域设置为英语,法语或德语.

我该怎么做?

jsf el

3
推荐指数
1
解决办法
1941
查看次数

JSF属性标记内的值

如何将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.

javascript jsf

3
推荐指数
1
解决办法
3414
查看次数

在托管bean中回滚事务

我想回滚事务不是在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,test2test3回滚,其他人将回滚呢?

我测试了这段代码, …

jsf ejb transactions

3
推荐指数
1
解决办法
2780
查看次数

如何在单击 JSF 按钮时调用 JS 函数并阻止页面重新加载/导航?

使用 JSF 创建按钮以调用 JS 函数的首选方法是什么?

其实我用:

<p:button onclick="myJSFunction();" href="#"/>
Run Code Online (Sandbox Code Playgroud)

但我的网址后缀为锚符号 ( #)。

是否有另一种推荐的方法来创建不会重新加载/导航到 URL 而是调用 JS 函数的按钮?

jsf onclick button primefaces

3
推荐指数
1
解决办法
1366
查看次数

PostgreSQL和Glassfish EJB__TIMER__TBL表

我正在尝试使用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)

postgresql timer glassfish

3
推荐指数
1
解决办法
3357
查看次数