- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试测试最小的 JAX-RS + EJB/CDI 注入(inject)机制,但由于 GlassFish 无法以任何原因注入(inject),目前遇到了障碍。
(使用 @Inject 会抛出 NPE,因为 GlassFish 无法注入(inject) POJO)。
我的 beans.xml 只包含<beans />
这是我的 web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<display-name>This is a REST Servlet</display-name>
<servlet>
<servlet-name>ServletAdaptor</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ServletAdaptor</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
</web-app>
import java.util.List;
import javax.ejb.EJB;
import javax.ejb.Stateless;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Stateless
@Path("/employee")
public class EmployeeResource {
@EJB
ApplicationScopedEmployeeServiceImpl employeeService;
@Path("/all")
@GET
@Produces({ MediaType.APPLICATION_XML })
public List<Employee> index() {
return this.employeeService.getAllEmployees();
}
}
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import javax.ejb.Stateless;
@Stateless
public class ApplicationScopedEmployeeServiceImpl implements EmployeeService {
final List<Employee> employees = new ArrayList<Employee>();
public ApplicationScopedEmployeeServiceImpl() {
final Employee employee = new Employee();
employee.setEmployeeId(new Date().getTime());
employee.setFirstName("FirstName-" + employee.getEmployeeId());
employee.setMiddleName("MiddleName-" + employee.getEmployeeId());
employee.setLastName("LastName-" + employee.getEmployeeId());
employee.setScoped("ApplicationScoped");
this.employees.add(employee);
}
/**
* {@inheritDoc}
*/
public List<Employee> getAllEmployees() {
return this.employees;
}
}
[#|2011-05-13T12:37:53.584-0700|INFO|glassfish3.1|javax.enterprise.system.container.ejb.com.sun.ejb.containers|_ThreadID=107;_ThreadName=Thread-1;|Portable JNDI names for EJB EmployeeResource : [java:global/rest-inject-0.0.1-SNAPSHOT/EmployeeResource!com.pcis.example.java.rest.resources.EmployeeResource, java:global/rest-inject-0.0.1-SNAPSHOT/EmployeeResource]|#]
[#|2011-05-13T12:37:53.610-0700|INFO|glassfish3.1|javax.enterprise.system.container.ejb.com.sun.ejb.containers|_ThreadID=107;_ThreadName=Thread-1;|Portable JNDI names for EJB ApplicationScopedEmployeeServiceImpl : [java:global/rest-inject-0.0.1-SNAPSHOT/ApplicationScopedEmployeeServiceImpl!com.pcis.example.java.rest.resources.EmployeeService, java:global/rest-inject-0.0.1-SNAPSHOT/ApplicationScopedEmployeeServiceImpl]|#]
[#|2011-05-13T12:37:53.641-0700|INFO|glassfish3.1|org.hibernate.validator.engine.resolver.DefaultTraversableResolver|_ThreadID=24;_ThreadName=Thread-1;|Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.|#]
[#|2011-05-13T12:37:53.898-0700|SEVERE|glassfish3.1|org.apache.catalina.core.ContainerBase|_ThreadID=24;_ThreadName=Thread-1;|ContainerBase.addChild: start:
org.apache.catalina.LifecycleException: java.lang.IllegalArgumentException: javax.servlet.ServletException: com.sun.enterprise.container.common.spi.util.InjectionException: Error creating managed object for class org.jboss.weld.servlet.WeldListener
at org.apache.catalina.core.StandardContext.start(StandardContext.java:5271)
at com.sun.enterprise.web.WebModule.start(WebModule.java:500)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:917)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:901)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:755)
at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1980)
at com.sun.enterprise.web.WebContainer.loadWebModule(WebContainer.java:1630)
at com.sun.enterprise.web.WebApplication.start(WebApplication.java:100)
at org.glassfish.internal.data.EngineRef.start(EngineRef.java:130)
at org.glassfish.internal.data.ModuleInfo.start(ModuleInfo.java:269)
at org.glassfish.internal.data.ApplicationInfo.start(ApplicationInfo.java:286)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:461)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:240)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:370)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$1.execute(CommandRunnerImpl.java:355)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:370)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1067)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1200(CommandRunnerImpl.java:96)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1247)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1235)
at org.glassfish.admingui.common.util.LocalDeploymentFacility$LocalDFCommandRunner.run(LocalDeploymentFacility.java:143)
at org.glassfish.deployment.client.AbstractDeploymentFacility.deploy(AbstractDeploymentFacility.java:406)
at org.glassfish.admingui.common.util.DeployUtil.invokeDeploymentFacility(DeployUtil.java:100)
at org.glassfish.admingui.common.util.DeployUtil.deploy(DeployUtil.java:76)
at org.glassfish.admingui.common.handlers.DeploymentHandler.deploy(DeploymentHandler.java:191)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.jsftemplating.layout.descriptors.handler.Handler.invoke(Handler.java:442)
at com.sun.jsftemplating.layout.descriptors.LayoutElementBase.dispatchHandlers(LayoutElementBase.java:420)
at com.sun.jsftemplating.layout.descriptors.LayoutElementBase.dispatchHandlers(LayoutElementBase.java:394)
at com.sun.jsftemplating.layout.event.CommandActionListener.invokeCommandHandlers(CommandActionListener.java:150)
at com.sun.jsftemplating.layout.event.CommandActionListener.processAction(CommandActionListener.java:98)
at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)
at javax.faces.component.UIComponentBase.broadcast(UIComponentBase.java:769)
at javax.faces.component.UICommand.broadcast(UICommand.java:300)
at com.sun.webui.jsf.component.WebuiCommand.broadcast(WebuiCommand.java:166)
at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:794)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1259)
at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:409)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1534)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:343)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
at com.sun.webui.jsf.util.UploadFilter.doFilter(UploadFilter.java:223)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:215)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
at org.apache.catalina.core.StandardPipeline.doChainInvoke(StandardPipeline.java:600)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:96)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:326)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:227)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:228)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:822)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:719)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1013)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
at com.sun.grizzly.ContextTask.run(ContextTask.java:71)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
at java.lang.Thread.run(Thread.java:662)
Caused by: java.lang.IllegalArgumentException: javax.servlet.ServletException: com.sun.enterprise.container.common.spi.util.InjectionException: Error creating managed object for class org.jboss.weld.servlet.WeldListener
at org.apache.catalina.core.StandardContext.addListener(StandardContext.java:2688)
at org.apache.catalina.core.StandardContext.addApplicationListener(StandardContext.java:1932)
at com.sun.enterprise.web.TomcatDeploymentConfig.configureApplicationListener(TomcatDeploymentConfig.java:234)
at com.sun.enterprise.web.TomcatDeploymentConfig.configureWebModule(TomcatDeploymentConfig.java:93)
at com.sun.enterprise.web.WebModuleContextConfig.start(WebModuleContextConfig.java:274)
at com.sun.enterprise.web.WebModuleContextConfig.lifecycleEvent(WebModuleContextConfig.java:172)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:149)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:5268)
... 73 more
Caused by: javax.servlet.ServletException: com.sun.enterprise.container.common.spi.util.InjectionException: Error creating managed object for class org.jboss.weld.servlet.WeldListener
at org.apache.catalina.core.StandardContext.createListener(StandardContext.java:2798)
at org.apache.catalina.core.StandardContext.loadListener(StandardContext.java:4745)
at com.sun.enterprise.web.WebModule.loadListener(WebModule.java:1603)
at org.apache.catalina.core.StandardContext.addListener(StandardContext.java:2685)
... 80 more
Caused by: com.sun.enterprise.container.common.spi.util.InjectionException: Error creating managed object for class org.jboss.weld.servlet.WeldListener
at com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.createManagedObject(InjectionManagerImpl.java:317)
at com.sun.enterprise.web.WebContainer.createListenerInstance(WebContainer.java:734)
at com.sun.enterprise.web.WebModule.createListenerInstance(WebModule.java:1981)
at org.apache.catalina.core.StandardContext.createListener(StandardContext.java:2796)
... 83 more
Caused by: java.lang.NullPointerException
at org.jboss.weld.bootstrap.WeldBootstrap.getManager(WeldBootstrap.java:313)
at org.glassfish.weld.services.JCDIServiceImpl.createManagedObject(JCDIServiceImpl.java:241)
at org.glassfish.weld.services.JCDIServiceImpl.createManagedObject(JCDIServiceImpl.java:204)
at com.sun.enterprise.container.common.impl.managedbean.ManagedBeanManagerImpl.createManagedBean(ManagedBeanManagerImpl.java:478)
at com.sun.enterprise.container.common.impl.managedbean.ManagedBeanManagerImpl.createManagedBean(ManagedBeanManagerImpl.java:428)
at com.sun.enterprise.container.common.impl.util.InjectionManagerImpl.createManagedObject(InjectionManagerImpl.java:300)
... 86 more
|#]
最佳答案
事实上,Jersey 没有正确处理依赖注入(inject)。到目前为止,它似乎已被报道并针对 future 的版本。 http://java.net/jira/browse/JERSEY-517
面对同样的问题,我必须实现上下文查找才能访问托管资源。
所以在你的 WS 构造函数中尝试这样的事情:
employeeService = (ApplicationScopedEmployeeServiceImpl) new
InitialContext().lookup("java:global/EJB/EmployeeService");
关于jakarta-ee - JAX-RS 未能注入(inject) @EJB 或 @Inject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5997008/
我需要审核 ejb bean 的调用。说审计我的意思是将当前登录的用户、方法名称、附加描述等信息写入数据库。我决定使用 CDI 装饰器来做到这一点: @Decorator public class A
当我使用 EJB 3.0 部署 Web 应用程序时,我看到了以下警告: WARNING: jar 'E:\mws\MCDS\portal\portal-web\target\portal-web-1.
我正在学习 EJB,当尝试使用 junit 测试它时,出现以下错误 cd.espoirmur.Ejb.InterfaceEjbLocal_80488159 Jun 03, 2016 10:33:58
是否可以在另一个 EJB 中使用 @EJB?我现在正在尝试这样做,但我的 EJB 最终为空。我将在示例中概述我的问题。 @Stateless @LocalBean @Local(LoginServic
我已通读 article试图理解为什么要在客户端和实体 bean 之间有一个 session bean。是不是因为让客户端直接访问实体bean,就让客户端对数据库一清二楚了? 因此,通过使用中间人(
我们正在尝试在具有两个节点的以域模式运行的 Wildfly 中查找远程 EJB。 设置是这样的: Wildfly 节点 1: 模块 A:EJB 客户端 模块 B:远程 EJB Wildfly 节点 2
我正在使用 Jboss 7,并且有两个单独的部署,它们都包含单例 EJB。 我需要一个 EJB 才能访问另一个 EJB 并能够调用其方法,但是,当应用程序服务器启动并尝试部署它们时,它似乎无法保证哪个
可能最好的方法是手动完成。但是在大型项目中,您需要一些工具来帮助您。正是这个想法促使我搜索了一个工具。 是否有任何 EJB 迁移工具可用于将 EJB 2.0 迁移到 3.x。 最佳答案 它的开发时间很
I am migrating Ejb 2.1 to Ejb 3.1. I changed Java Version from 1.6 to 1.8, and Ejb Version from 2.1
我已经使用 @ActivationConfigProperty 配置了消息目标类型、名称等。在 EJB 3.0 中,但我想配置 MDB使用部署描述符 ( ejb-jar.xml ),就像在 EJB 2
假设我有两个 EJB jar:A.jar 和 B.jar。我可以使用 CDI 将不是 EJB 的实用程序类 Autil 注入(inject) A.jar 中的 POJO 到 B.jar 中的 EJB
我有一个需要配置不同的现有项目。这需要在没有重大代码更改的情况下发生。我实际上希望我只能通过配置以某种方式做到这一点。在过去的 2 到 3 天里,我一直在阅读我能找到的关于这个问题的所有内容。我了解
我有一个非常简单的带有maven的ejb 3.0模块,它只有两个 session bean,一个是无状态的,另一个是单例的...当我尝试在Glassfish 3.0服务器上部署该项目时,我得到了这个异
我们在微服务中看到的是一个孤立的组件,通过协议(protocol)通过网络与该组件的父消费者进行通信。 我们在 EJB 1.0 中看到了非常相似的模式。 我的问题是:微服务架构模式是否类似于 EJB
我在 Java EE6 Singleton Session Bean 中有一个方法,它每 30 秒由 @Schedule(...) 计时器调用。这按预期工作,直到在方法中抛出并捕获异常(异常在 try
我正在 JDeveloper 11.1.1.4 中开发一个 JAX-WS WebService,它应该使用之前部署到 WebLogic 服务器的 JAR 中的 EJB。 WebService项目和EJ
我正在尝试使用 JAX-RS 注释将一些 EJB 公开为 REST Web 服务。当我部署 war WEB-INF/lib 中包含 EJB Jar 的文件到 Wildfly 8,我可以在 Web 管理
我是 EJB 方面的新手,但我已经获得了 EJB 级别的提升。 该层由一个 EJB 组成,它公开可用的操作: @Stateless(name = "myejb") public class Facad
假设我想创建一个我将在未来项目中使用的库,但我还想在该库中包含引用其他 EJB 等的 EJB。该库还将包含简单的 Java 类。最好的方法是什么?在这种情况下如何定义依赖关系?我想我会用注释来定义它们
我想知道是否可以按照这些思路做一些事情: 1)服务器端(EJB类) @Statefull public class SomeEJB implements SomeEJBRemote { @Resour
我是一名优秀的程序员,十分优秀!