Tag: java ee 6

@Inject仅适用于CDI容器创建的POJO?

我只想确认我完全理解CDI工作的先决条件。 如果我有Aclass: public class A { @Inject private B b; } 现在,当我使用以下方法实例化此类时: A a = new A(); 在这种情况下,Ab将为null。 但是如果我在另一个类中定义一个成员: @Inject A a; 以后使用a,ab会被正确填充吗? CDI仅在需要注射的类也由CDI容器创建时才起作用吗? 或者,如果使用普通实例化创建POJO时,注射结果为null,我会错过什么(是的,我有beans.xml)?

如何在Netbeans中将现有企业项目从Java EE5升级到Java EE 6(6.9)

该项目有一个EJB模块和一个Web模块。 更改服务器很简单,但我也想切换到EJB 3.1,但我相信我需要更改所有类型的配置文件,因为我无法从项目属性窗口中执行此操作。 任何提示或链接做有用的文档将不胜感激。 谢谢!

无法实例化javax.servlet.ServletException

我正在尝试使用以下代码创建类javax.servlet.ServletException的实例 public class MyTroubleViewer { public static void main(String[] args) { javax.servlet.ServletException servletException = new javax.servlet.ServletException(“Hello”); System.out.println(servletException.getMessage()); } } 但我在创建时遇到exception: Exception in thread “main” java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/servlet/ServletException … Maven帮助我依赖: javax javaee-api 6.0 jar compile 我究竟做错了什么?

在jdk中找不到javax.ws.rs包

我正试图进入JAX-RS。 我的项目jdk设置为1.7.03。 是否必须为JAX-RS(javax.ws.rs)定义注释? 如果没有,我可以在哪里找到它们?

使用EJBContext getContextData – 这样安全吗?

我打算使用EJBContext将一些属性从应用程序层(特别是消息驱动的bean)传递给持久性生命周期回调,该回调无法直接注入或传递参数(EclipseLink中的会话侦听器,实体生命周期回调等) ,该回调是通过JNDI获取EJBContext 。 这似乎工作,但有任何隐藏的陷阱,如我缺少的线程安全或对象寿命? (假设传递的属性值是不可变的,如String或Long。) 示例bean代码 @MessageDriven public class MDB implements MessageListener { private @Resource MessageDrivenContext context; public void onMessage(Message m) { context.getContextData().put(“property”, “value”); } } 然后是使用EJBContext的回调 public void callback() { InitialContext ic = new InitialContext(); EJBContext context = (EJBContext) ic.lookup(“java:comp/EJBContext”); String value = (String) context.getContextData().get(“property”); } 我想知道的是,我可以确定contextData映射内容只对当前调用/线程可见吗? 换句话说,如果两个线程同时运行callback方法,并且都从JNDI查找EJBContext ,它们实际上获得了不同的contextData映射内容? 而且,这实际上是如何工作的 – 从JNDI查找返回的EJBContext最终是一个ThreadLocal的结构的包装器对象?

是否可以定义一个与其实现分开的jax-rs服务接口(使用eclipse和jersey)?

我不知道标题是否令人困惑,但让我说我有这个界面: @Produces(MediaType.APPLICATION_JSON) @Path(“/user”) public interface UserService { @GET @Path(“/{userId}”) public Response getUser(@PathParam(“userId”) Long userId); } 为什么当我尝试实现一个版本Eclipse重写覆盖方法的注释而不是类? class UserServiceImpl implements UserService { @Override @GET @Path(“/{userId}”) public Response getUser(@PathParam(“userId”) Long userId) { // TODO Auto-generated method stub return null; } } 我试图为restful Web服务创建一个标准定义,然后进行不同的实现。 用标准的jax-rs可以这样吗? 我是否有机会使用错误的注释?

可以使用@Resource在EJB3.0中注入原语吗?

使用Glassfish,我可以设置一个字符串jndi条目: JNDI名称:“com / xyzcompany / echo / EchoServiceBean / viewName” 工厂类:org.glassfish.resources.custom.factory.PrimitivesAndStringFactory 属性:value =“Testing123” 然后我可以将这个容器配置的字符串注入我的EJB: @Resource(lookup =“com / xyzcompany / echo / EchoServiceBean / viewName”) String viewName; lookup =似乎在内部执行InitialContext.lookup(…)。 但是,这使用ejb3.1,但不幸的是我的prod环境只有ejb3.0。 我想我想弄清楚是否有办法使用@Resource(name =)或@Resource(mappedName =)来做类似的事情? name =似乎是特定于应用程序的,所以我应该能够以某种方式将相对名称映射到全局JNDI名称,但我无法弄清楚映射的注释。 谢谢!

如何为独立客户端设置Glassfish 3.1.2的JNDI?

我尝试从独立的swing客户端(在客户端计算机上的单独JVM中运行)连接到Glassfish服务器。 我目前使用Netbeans的以下设置,一切正常: System.setProperty(“java.naming.factory.initial”, “com.sun.enterprise.naming.SerialInitContextFactory”); System.setProperty(“java.naming.factory.url.pkgs”, “com.sun.enterprise.naming”); System.setProperty(“java.naming.factory.state”, “com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl”); System.setProperty(“org.omg.CORBA.ORBInitialHost”, “192.168.1.3”); System.setProperty(“org.omg.CORBA.ORBInitialPort”, “3700”); InitialContext context = new InitialContext(); 但是当我尝试通过键入“java -jar client.jar”从控制台启动编译的客户端时,我收到以下错误: D:\workspace\gf-client\dist>java -jar gf-client.jar 17.08.2012 11:07:38 ch.client.core.ServerContext getInitialContext SCHWERWIEGEND: Cannot instantiate class: com.sun.enterprise.naming.SerialInitContextFactory javax.naming.NoInitialContextException: Cannot instantiate class: com.sun.enterprise.naming.SerialInitContextFactory [Root exception is java.lang.ClassNotFoundException: com.sun.enterprise.naming.SerialInitContextFactory] at javax.naming.spi.NamingManager.getInitialContext(Unknown Source) at javax.naming.InitialContext.getDefaultInitCtx(Unknown Source) at javax.naming.InitialContext.init(Unknown Source) at javax.naming.InitialContext.(Unknown Source) at […]

如何在JPA中的两列上运行SUM等聚合函数并显示其结果?

我是JPA的新手。 所以我的问题对某些人来说应该是如此简单。 下面是SQL中的简单查询,我想将其转换为JPA。 我已经有一个名为TimeEnt的实体类。 SELECT SUM(TimeEntryActualHours) as UnBilledHrs, SUM (TimeEntryAmount) as UnbilledAmount FROM TimeEnt WHERE MatterID = 200

JavaEE6 DAO:应该是@Stateless还是@ApplicationScoped?

我目前正在创建一个EJB3数据访问类来处理我的Java EE 6应用程序中的所有数据库操作。 现在,由于Java EE 6提供了新的ApplicationScoped-Annotation,我想知道我的EJB应该具有什么状态,或者它应该是无状态的。 让DAO成为@Stateless会话Bean或@ApplicationScoped Bean会更好吗? @Singleton怎么样? 这些与DAO相关的选项有何不同? 编辑:我正在使用Glassfish 3.0.1与完整的Java EE 6平台