标签: java-ee-6

Weblogic 11g和JavaEE 6

我想知道Weblogic 11g是否已经支持JavaEE 6.由于我在google中没有找到任何关于它的内容,我认为它没有,直到我发现评论说Oracle WebLogic Server 11g是Java EE 6投诉.

尽管如此,我还没有找到支持新Java EE 6功能的模块.

有人知道这个吗?

java-ee weblogic11g java-ee-6

10
推荐指数
2
解决办法
1万
查看次数

使用Glassfish 3.0.1和NetBeans 6.9.1的JPA 2.0(记录和跟踪):

我正在使用JPA 2.0(EclipseLink提供程序)与Glassfish v3.0.1NetBeans 6.9.1,并且无法从JPA 2.0中查看查询和其他日志记录信息.基本上我希望能够看到JPA生成的所有SQL语句和其他相关的调试信息......

有没有人成功配置日志记录以提供此类反馈?我尝试了几件事无济于事......

任何帮助将不胜感激.

非常感谢.

debugging java-ee-6 jpa-2.0 glassfish-3 netbeans-6.9

10
推荐指数
2
解决办法
8448
查看次数

如何在Bean Validation中更改ValidationMessages.properties的位置

默认情况下,ValidationMessages.properties可以位于我的类路径的根目录中.我可以像com.myapp.Anything.properties一样更改此文件的位置吗?

bean-validation java-ee-6

10
推荐指数
1
解决办法
4291
查看次数

如何在呈现响应之前处理多个提交?

从测试中可以看出,如果响应速度不够快,有时可能会多次按下一个按钮,导致后端代码的多次调用,这是我们不想要的.

应用程序是使用Glassfish 3.1.1中的JSF 2.0的Java EE 6 Web Profile.

我想知道如何正确处理这个问题,并想到了几个场景:

  • 提交应该在呈现响应时使用javascript禁用所有按钮.
  • 会话范围中的一个标志表示它已经处于活动状态,因此会跳过敏感代码,然后继续重新呈现先前提交的响应.
  • 同步块延迟处理直到前一个请求完成.然后应该检测到它已经被处理和跳过.
  • 使用其中一个"新"范围,如转换来处理检测?

我的直觉是,最好的方法是让敏感的代码块原子化,但问题是呈现正确的响应.

我该怎么做呢?

jsf java-ee-6 jsf-2

10
推荐指数
2
解决办法
4455
查看次数

EntityListeners中的CDI注入

由于JPA 2.0不支持注入EntityListener(JPA 2.1将),因此决定使用JNDI查找来获取BeanManager并通过它获取登录用户.我定义了一个EntityListener类似的:

public class MyEntityListener {

    public static BeanManager getBeanManager() {
        try {
            InitialContext initialContext = new InitialContext();
            return (BeanManager) initialContext.lookup("java:comp/BeanManager");
        } catch (NamingException e) {
            e.printStackTrace();
            return null;
        }
    }

    public Object getBeanByName(String name) {
        BeanManager bm = getBeanManager();
        Bean bean = bm.getBeans(name).iterator().next();
        CreationalContext ctx = bm.createCreationalContext(bean);
        return bm.getReference(bean, bean.getClass(), ctx);
    }

    @PrePersist
    @PreUpdate
    public void onPreInsertOrUpdate(MyEntity entity) {
        User loggedInUser = (User) getBeanByName("loggedInUser");
        entity.setUpdatedUser(loggedInUser);
        entity.setUpdatedTimestamp(new Date());
    }
}
Run Code Online (Sandbox Code Playgroud)

用户在会话范围内管理为:

@SessionScoped
public class UserManager …
Run Code Online (Sandbox Code Playgroud)

hibernate cdi java-ee-6 jpa-2.0 jboss-weld

10
推荐指数
1
解决办法
6210
查看次数

在一场战争中有多个CDI配置文件(开发,测试版,qa,生产)?

有了使用Spring DI applicationContext.xml声明依赖注入的方法的经验,我现在试着弄清楚如何用Java EE6 CDI做同样的事情.

使用Spring,我可以将我的.jar与几个配置文件一起发送,例如 unittest.xml,devel.xml,qa.xml,production.xml,并使用命令行参数或环境变量激活它们.

使用CDI,我可以在beans.xml中使用@Alternative 和web.xml中的属性,但似乎无法为不同的环境发送多个beans.xml.

我不想使用Maven配置文件/过滤器来生成我的应用程序的4-6版本,虽然我知道在某些情况下这将是更好的解决方案(即向客户发送准备好的构建战争 - 但我只在内部使用我的战争所以让我们节省编译时间!)

最好,我还可以从文件系统加载这些配置文件,以便系统管理员可以编辑它们,而无需重新构建应用程序.

具有多个依赖关系和属性配置集的Java EE6方法是什么?

如果没有,那么2013年的推荐替代品是什么?使用Spring?接缝?吉斯?我看到了Apache DeltaSpike的提及,但它们仍然看起来像网页上的alpha.

java spring cdi java-ee-6

10
推荐指数
1
解决办法
3719
查看次数

将EJB注入Eclipselink SessionCustomizer以提供Oracle模式名称

在GlassFish(3.1.2.2b5)上运行的Java EE 6应用程序中,假设您有一个ConfigurationService,它读取一些属性文件并相应地分发属性值:

@Local
public interface ConfigurationService { ... }
Run Code Online (Sandbox Code Playgroud)
@Singleton  
public class ConfigurationServiceImpl implements ConfigurationService { ... }
Run Code Online (Sandbox Code Playgroud)

还有一个Eclipselink SessionCustomizer,因为应用程序中的一个持久性单元(Oracle数据库)的模式名称需要以编程方式设置,即可以从之前提到的属性文件进行配置.的SessionCustomizer是在配置persistence.xml和实施包含对一个参考ConfigurationService:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence"...
    <persistence-unit name="myPU" transaction-type="JTA">
        <property name="eclipselink.session.customizer" value="MySessionCustomizer"/>
        ...
Run Code Online (Sandbox Code Playgroud)
public class MySessionCustomizer implements SessionCustomizer {
    @EJB
    private ConfigurationService configurationService;
    @Override
    public void customize(Session session) {
        session.getLogin().setTableQualifier(configurationService.getSchemaName());
        ...
Run Code Online (Sandbox Code Playgroud)

是否有可能以ConfigurationService这种方式注入,以便在SessionCustomizer实例化时可用?上述操作失败,因为ConfigurationService实例仍然为空,即注入尚未发生.此观察对应于服务器的日志条目.似乎依赖注入机制总是在持久性单元 - 因此SessionCustomizer- 被实例化之后开始.我搞砸周围的各种注释(@Startup,@DependsOn(...),...),但无济于事.我的结论是正确的还是有另一种方法让EJB更早实例化并注入?

java oracle eclipselink java-ee-6 ejb-3.1

10
推荐指数
1
解决办法
524
查看次数

无法运行arquillian测试

我正在尝试使用Arquillian进行一些单元测试,但是我无法找到使用Maven部署时失败的原因.

这是班级考试:

package com.ndeveloper.spec.test;

import javax.inject.Inject;

import junit.framework.Assert;

import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.ArchivePaths;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.ByteArrayAsset;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.junit.Test;
import org.junit.runner.RunWith;

import com.ndeveloper.spec.controller.GreetingBean;

@RunWith(Arquillian.class)
public class GreetingBeanTest {

@Inject
GreetingBean greetingBean;

@Deployment
public static JavaArchive createTestArchive()
{
    return ShrinkWrap.create( JavaArchive.class,"test.jar").
            addClass(GreetingBean.class).addAsManifestResource(
                    new ByteArrayAsset("<beans/>".getBytes()),
                    ArchivePaths.create("beans.xml"));

}

@Test
public void testInjection(){
    Assert.assertEquals("Hello World", greetingBean.getGreeting());     
}
}
Run Code Online (Sandbox Code Playgroud)

我正在使用jboss jboss-javaee6-webapp原型.奇怪的是,最初的测试工作得很好......但是使用了几次之后.出现以下错误:

测试错误:com.ndeveloper.spec.test.GreetingBeanTest:无法获取MBeanServerConnect:service:jmx:rmi:/// jndi/rmi://127.0.0.1:1090/jmxrmi

万无一失的报告说如下:

-------------------------------------------------------------------------------
Test set: com.ndeveloper.spec.test.GreetingBeanTest
-------------------------------------------------------------------------------
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 1.309 sec …
Run Code Online (Sandbox Code Playgroud)

java unit-testing java-ee-6 ejb-3.1 jboss-arquillian

9
推荐指数
1
解决办法
2万
查看次数

CDI注入EJB会导致NullPointerException

我是Java EE 6和CDI的新手.我已经阅读了几个教程和焊接文档.然而,根据我的理解应该起作用的东西不是,所以我需要帮助.

我有以下情况.我使用随IDE提供的maven原型创建了一个带有NetBeans 7.0.1的Java EE 6应用程序,并部署到IDE提供的GlassFish 3.1.

beans.xml位于我的EJB jar的META-INF目录中.

我创建了一个类作为我的EJB工件(和EntityManager)的生产者类工作的类

@Stateless
public class EjbArtifactProducer {

    @PersistenceContext(unitName = "trackProfiler-PU")    
    private EntityManager em;

    @EJB
    private UserFacadeLocal userFacade;

    @EJB
    private AuthServiceLocal authService;

    @EJB
    private NewsEntryFacadeLocal newsEntryFacade;

    @EJB
    private RoleFacadeLocal roleFacade;

    @EJB
    private TrackCommentFacade trackCommentFacade;

    @EJB
    private TrackFacade trackFacade;

    @EJB
    private TrackTypeFacade trackTypeFacade;

    @EJB
    private WaypointFacadeLocal waypointFacade;

    @Produces
    public AuthServiceLocal getAuthService() {
    return authService;
    }

    @Produces
    public EntityManager getEm() {
    return em;
    }

    @Produces
    public NewsEntryFacadeLocal getNewsEntryFacade() {
    return newsEntryFacade;
    }

    @Produces
    public …
Run Code Online (Sandbox Code Playgroud)

java cdi java-ee-6 ejb-3.1 glassfish-3

9
推荐指数
1
解决办法
8715
查看次数

使用CDI对性能的影响

我正在编写一个Java EE 6 Web应用程序,我注意到在使用注入对象与直接创建和使用对象时会对性能产生重大影响.每个方法调用的开销似乎是50-60ms.

例如,使用非注入150方法调用大约需要500毫秒,而使用注入对象150方法调用需要12,000 - 13,000毫秒.一个数量级的差异然后一些.

这通常吗?

我在JBoss AS 7.1.1 final上运行,它使用Weld来处理CDI.

注入的对象被定义为单例bean(通过javax.ejb.Singleton注释).这会导致部分问题吗?或者只是Weld代理导致减速?

java cdi java-ee-6 jboss-weld jboss7.x

9
推荐指数
1
解决办法
3190
查看次数