Tag: java ee

具有实例变量的无状态会话bean

我有一个无状态会话bean,它包含一个公共方法,几个私有方法和一些实例级变量。 下面是一个伪代码示例。 private int instanceLevelVar public void methodA(int x) { this.instanceLevelVar = x; methodB(); } private void methodB() { System.out.println(instanceLevelVar); } 我所看到的是,methodB正在打印未传递给MethodA的值。 最好我可以告诉它从同一个bean的其他实例打印值。 什么会导致这个? 我应该指出代码99.9%的时间按预期工作。 但是,。01%对我来说是一个严重的问题/担忧。 我明白,如果我有不同的公共方法,那么我可能不会在调用之间获得相同的bean,这会导致这种行为。 但是,在这种情况下,唯一的调用是单个公共方法。 容器(在这种情况下是Glassfish)是否仍会在私有方法调用之间交换bean? (编辑)我将“类级别”重命名为“实例级别”,因为这引起了一些混乱。

使用Spring进行Hibernate二级缓存

我正在使用Spring + JPA + Hibernate。 我正在尝试启用Hibernate的二级缓存。 在我的Spring的applicationContext.xml我有: net.sf.ehcache.hibernate.SingletonEhCacheProvider /ehcache.xml 当我运行时,我得到错误: Caused by: org.hibernate.HibernateException: Could not instantiate cache implementation at org.hibernate.cache.CacheFactory.createCache(CacheFactory.java:64) Caused by: org.hibernate.cache.NoCachingEnabledException: Second-level cache is not enabled for usage [hibernate.cache.use_second_level_cache | hibernate.cache.use_query_cache] at org.hibernate.cache.NoCacheProvider.buildCache(NoCacheProvider.java:21) 所以它抱怨我没有启用二级缓存。 我尝试通过添加到我的applicationContext.xml来启用它: true 但仍然没有快乐。 我也尝试将其添加到我的ehcache.xml中: true 但它仍然无效。 将provider_class更改为org.hibernate.cache.EhCacheProvider也无济于事: org.hibernate.cache.EhCacheProvider 我的实体类被注释为使用缓存 @Cache(usage=CacheConcurrencyStrategy.READ_ONLY) 那么,我如何启用二级缓存? 编辑:这是在bean下: 已解决:由于我使用的是LocalEntityManagerFactoryBean因此它从META-INF/persistence.xml获取其设置。 我甚至没有读取applicationContext.xml中的设置。

使用JAX-RS将JSON查询参数转换为对象

我有一个JAX-RS资源,它将其参数作为JSON字符串,如下所示: http://some.test/aresource?query={“paramA”:”value1″, “paramB”:”value2″} 在这里使用JSON的原因是查询对象在实际用例中可能非常复杂。 我想将JSON字符串转换为Java对象,在示例中为dto: @GET @Produces(“text/plain”) public String getIt(@QueryParam(“query”) DataTransferObject dto ) { … } JAX-RS是否支持将JSON作为查询参数传递给Java对象的转换?

如何使用Maven在EAR中添加WAR

我有一个应用程序的EAR,我需要使用我自己的代码扩展这个应用程序,该代码打包为WAR。 是否有maven插件可以帮助我将WAR放入EAR? 手动过程是将WAR放入EAR并将模块添加到application.xml。 我想自动化。 编辑:小澄清 – WAR项目使用maven但是对于EAR我只有二进制文件了。

使用Tomcat,@ WebFilter不能与web.xml中的一起使用

这是一个有效的web.xml: 30 rememberMeCookieFilter be.example.fun.jsp.filters.RememberMeCookieFilter mustBeSignedInFilter be.example.fun.jsp.filters.MustBeSignedInFilter rememberMeCookieFilter /* mustBeSignedInFilter /private/* 当我删除元素并使用以下注释时: @WebFilter(filterName=”rememberMeCookieFilter”) public class RememberMeCookieFilter implements Filter @WebFilter(filterName=”mustBeSignedInFilter”) public class MustBeSignedInFilter implements Filter 然后Tomcat 7.0.14给我以下错误: java.lang.IllegalArgumentException: Filter mapping must specify either a or a at org.apache.catalina.core.StandardContext.validateFilterMap(StandardContext.java:2956) at org.apache.catalina.core.StandardContext.addFilterMap(StandardContext.java:2915) at org.apache.catalina.deploy.WebXml.configureContext(WebXml.java:1180) at org.apache.catalina.startup.ContextConfig.webConfig(ContextConfig.java:1270) … 我按照这个问题的答案,但这对我不起作用。 以下是我的Web应用程序的依赖项: org.slf4j slf4j-api 1.6.4 ch.qos.logback logback-core 1.0.0 ch.qos.logback logback-classic 1.0.0 org.codehaus.groovy […]

Webapp文件组织约定(开发结构)

对于我正在开发的webapps,我通常使用以下文件组织,因为我认为它尊重约定: src |– main |– resources | |– *.properties | |– *.xml | |– spring | |– applicationContext.xml (main application context config file) |– webapp |– WEB-INF |– spring | |– spring-mvc.xml (web application context config file, delegated to manage only the web part) | |– spring-security-http.xml (web security config) |– static | |– *.css […]

在JSF 2的AjaxBehaviorEvent中捕获KeyCode

我有一个JSF ajax keyup事件链接到支持bean中的事件列表器。 JSF文件中的代码如下所示。 支持bean中的代码如下所示。 public void changeDetailsEvent(AjaxBehaviorEvent event) { } 我希望根据按键实现不同的逻辑,如下所示为伪代码。 public void changeDetailsEvent(AjaxBehaviorEvent event) { If (event.key = Key.enter) { do something; } else if (event.key = Key.Escape) { so something else; } else { do nothing; } } 有人可以告诉我这是如何在支持bean中完成的吗?

为什么f:validateDoubleRange仅适用于@SessionScoped?

有人可以向我解释为什么我的例子中的Foo在到达validateDoubleRange类时总是为空? 最终结果是validation器的最小值始终为0.在outputText元素中,数字3在页面上显示正常。 如果我使用@SessionScoped而不是@ViewScoped来validation它是@ViewScoped 控制器: import java.io.Serializable; import java.math.BigDecimal; import javax.faces.bean.ManagedBean; import javax.faces.bean.ViewScoped; @ViewScoped @ManagedBean(name = “fooController”) public class FooController implements Serializable { private static final org.slf4j.Logger log = org.slf4j.LoggerFactory.getLogger(FooController.class); private static final long serialVersionUID = 1L; private Foo foo; private BigDecimal amount; private Long fooId; public Long getFooId() { return fooId; } public void setFooId(Long […]

使用Java EE 6 Beanvalidation

我正在尝试使用此处指定的Java EE 6validation http://docs.oracle.com/javaee/6/tutorial/doc/gircz.html 我注释了一个简单的字段 @Max(11) @Min(3) private int numAllowed; 文档说“对于内置约束,可以使用默认实现”但是如何指定它。 我的约束检查没有开始。我希望它能够调用字段的setter方法。 我class上唯一的import是 import javax.validation.constraints.Max; import javax.validation.constraints.Min; 如何/在何处指定实施? 我将约束放在一个简单的POJO而不是@Entity类的字段上,这样可以吗?

h:commandbutton,如何重定向到外部站点?(JSF 2)

当我使用命令按钮重定向到页面时,在我的项目中,你只需要给出没有扩展名的页面名称,然后在action属性中使用?faces-redirect = true ,我将被重定向。 但是如果我想重定向到外部页面(例如:www.google.com)怎么办? 我试过很多方面: www.google.com,google.com, http://google.com 但我失败了。 这就是我做的: 然后是支持bean: @Named(“mainPageBB”) @RequestScoped public class MainPageBB { @EJB private ILinkManagerEJB linkManagerEJB; public String goToLink() { String link = linkManagerEJB.retrieveLink(); if(link != null) { System.out.println(link); return link.trim() + “?faces-redirect=true”; } return null; } 注意: retrieveLink()返回的值; 始终是www.google.com(100%肯定) 我在控制台中完全没有错误,页面只是刷新。 此外,我确信第一个if子句validation为true,所以我认为没有理由跳转到返回null。 更新 我尝试使用外部上下文,但是我得到了404,因为它将当前url附加到链接字符串: public String goToRandomLink() { String link […]