Tag: java ee 6

用JUnittesting一个EJB

我应该如何testing一个获得EntityManager实例注入的EJB 3.1? 一个可能的EJB: @Stateless @LocalBean public class CommentService { @PersistenceContext private EntityManager em; public List<Comment> findAll() { TypedQuery<Comment> query = em.createNamedQuery( Comment.FIND_ALL, Comment.class ); return query.getResultList(); } } 一个可能的testing: @Test public void testFindAll() { List<Comment> all = service.findAll(); Assert.assertEquals(8, all.size()); } 我只使用GlassFish 3.1和Eclipse Indigo for Java EE开发人员。 我已经尝试过这样的事情: @Before public void setUp() throws Exception { […]

使用Enumtypes作为@ RolesAllowed-Annotation的值参数

我正在开发一个Java企业应用程序,目前正在执行Java EE安全性的东西来限制特定function对特定用户的访问。 我configuration了应用程序服务器和所有东西,现在我使用RolesAllowed注释来保护这些方法: @Documented @Retention (RUNTIME) @Target({TYPE, METHOD}) public @interface RolesAllowed { String[] value(); } 当我使用这样的注释时,它工作正常: @RolesAllowed("STUDENT") public void update(User p) { … } 但这不是我想要的,因为我必须在这里使用一个string,重构变得困难,错字可能发生。 所以,而不是使用一个string,我想使用一个枚举值作为这个注释的参数。 Enum看起来像这样: public enum RoleType { STUDENT("STUDENT"), TEACHER("TEACHER"), DEANERY("DEANERY"); private final String label; private RoleType(String label) { this.label = label; } public String toString() { return this.label; } } 所以我试图使用Enum作为这样的参数: […]

Glassfish的DeploymentException:链接安全策略错误

我一直在尝试从Glassfish AdminConsole部署我的Web应用程序(战争),但我不断收到以下错误消息 – Exception while loading the app : Error in linking security policy for MyApp-war — Inconsistent Module State. 但是当我从Netbeans那里部署的时候,它没有任何问题。 (我不知道在部署应用程序之前,Netbeans是否正在做一些我不知道的事情。) 而且我也尝试过最新版本的Glassfish(即V3.1.1(build 12)),我可以从AdminConsole中没有任何问题地部署相同的应用程序。 我正在使用Glassfish 3.1(版本43)和Netbeans 7.0。 在使用此版本的Glassfish部署我的应用程序之前,是否有任何安全策略设置?

我在哪里可以findJava EE 6所有参考实现的列表?

你知道Java EE 6的每个组件都有一个包含所有参考实现的列表吗? 即GlassFish是参考容器,用于validation的Hibernatevalidation器等。

CDI是Spring的一个很好的替代品吗?

我们正计划从头开始编写一个Web应用程序,因此决定使用符合Java EE 6标准的最新版Glassfish,因此我们正在分析CDI是否可以用来代替Spring。 我们可以说CDI可以替代Spring吗?

官方JSP教程在哪里?

我现在必须记住如何创build自定义标记库,并且由于我正在使用servlet 3.0,所以我决定查看官方的JavaEE6教程。 让我惊讶的是,在JavaEE6教程中没有关于JSP的内容。 另一方面, JavaEE5教程中有足够的信息。 看来JSF现在被认为是JavaEE中唯一的视图技术,尽pipe我不知道JSP会被弃用( q1 :是吗?)。 我试图寻找一个单独的教程,但网站是一团糟(我find了关于JSP的页面,但它仍然说“Java 2平台,企业版”。 那么, q2 :JavaEE6的官方JSP教程在哪里? (我当然会使用JavaEE5教程,但这似乎很奇怪)

什么是javax.inject.named注释应该用于?

我想了解javax.inject包,我不清楚javax.inject.Named注释应该用于什么。 Javadoc没有解释它背后的想法。 Javadoc位于http://download.oracle.com/javaee/6/api/javax/inject/Named.html 我正在使用Spring 3.0来编写一些示例程序,通过将@Named放在一个bean上,似乎将它添加到bean工厂,但Javadoc描述是如此的轻,我不知道这是标准行为还是Spring特定的行为。 我的问题是: @Named和@Qualifier什么区别? 你应该如何告诉运行系统一个类应该在其他类中注入什么注释呢? 在Spring中相当于@Component ? 更新1有一个关于@Named和@Qualifier关于@Named和@Qualifier http://java.dzone.com/articles/java-ee6-cdi-named-components的精彩解释,谢谢@xmedeko链接到它下面的评论。

Java EE 6与Spring 3堆栈

我现在开始一个新的项目。 我必须select技术。 我需要一些东西,所以没有EJB或Seam。 另一方面,我需要JPA(Hibernate或其他)和JSF与IceFaces。 你认为在Tomcat上部署的这样一个堆栈是不错的select吗? 或者一个Java EE 6的Web应用程序可能会更好? 我担心,Java EE 6是一项新技术,尚未完善logging。 Tomcat似乎比Glassfish 3更容易维护。 你怎么看? 你有什么经验吗?

CDI和EJB如何比较? 相互作用?

我很难理解这两者之间的相互作用以及它们之间的界限在哪里。 他们重叠? 他们之间是否有冗余? 我知道有两个相关的注释,但我一直没能find一个完整的清单,简要说明。 不知道这是否有助于清除它们之间的差异或重叠。 真的只是困惑。 我认为我相当了解EJB,我想我很难理解CDI究竟带来了什么,以及它如何取代或增强EJB已经提供的东西。

在JavaEE 6 WAR和EAR中打包EJB

开始一个新项目,想了解在WAR和EAR中打包EJB的优缺点。 当EJB处于WAR中时,JNDI仍然可以工作吗? 效率? 等等。? 谢谢。