Tag: java ee 6

在运行JUnit时,使用CDI bean注入EJB 3.1的问题

我使用@inject创建了一个EJB3.1并注入了CDI bean,但是在unit testing时遇到了一些问题,但是当从servlet测试它工作正常时。 我在WEB-INF文件夹中有beans.xml。 下面是我的EJB代码: @Stateless public class CdiUsingEjb { @Inject private HelloServletCDIPojo helloServletCDIPojo; public String greet() { assert helloServletCDIPojo != null; return helloServletCDIPojo.from(); } } 下面是我的CDI bean: public class HelloServletCDIPojo { public String from() { return “from HelloServletStateless CDI”; } } 我创建了一个JUnit类: public class CdiUsingEjbTest { @EJB private CdiUsingEjb cdiUsingEjb; @Before public void setUp() […]

哪里放组成组件?(JSF 2.0)

我正在继续我的JSF 2.0实践。 我认为模板是一件好事,它有很多优点。 但是今天我得到了一个与之相关的新疑问。 我为我的网页创建了一个模板。 在模板中,我使用标签 对于不同的部分(这些部分稍后将在一个页面中使用组合标记结合一个或多个定义标记来实现)。 同样在模板内部,为了避免在模板中添加太多代码,我创建 标签添加一些其他的xhtml块。 这是我的文件夹结构的样子: 这一切都像我一样工作,但当我在url导航到languageChanger.xhtml时,我看到了xhtml的复合块: 我的怀疑是: – 那些大量独立代码放在正确的位置?,或者它是错误的,不应该允许用户从URL中看到它? – 那个地方保存有其他组件,如登录,注册……? – 为了避免用户直接访问组件,我可以将它放在WEB-INF文件夹中,但是我有一个问题,包含标签找不到路径。 我该怎么办? – 什么是最佳实践,在哪里放置这些独立的代码块?

jax-b xml具有多对多关系的反向引用

我的数据模型中有很多关系。 我一直在尝试使用JAX = B来获取数据模型的XML表示,但是我已经读过一对多的关系: @XmlInverseReference 需要用于映射的反面。 我相信这是为了使用不同的提取类型(即LAZY和EAGER)。 我不确定这个注释是如何工作的。 它是否使用后向指针来确保在某些字段上指定数据时不会获取数据? 我也不知道是否需要用上述注释来注释我的多对多关系。 这是与自身有多对多关系的用户类,即。 用户可以是许多其他用户的朋友。 我应该用@XmlInverseReference注释getter吗? @Entity @Table(name = “users”) public class User implements Serializable { … // bi-directional many-to-many association to User @ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE, CascadeType.REFRESH }) @JoinTable(name = “friends”, joinColumns = { @JoinColumn(name = “uid”) }, inverseJoinColumns = { @JoinColumn(name = “frienduId”) }) private […]

我将如何向Activemq发送消息

我从不在JMS工作。 最近我在所有conf/activemq-*.xml文件中下载了Activemq并将端口号从61616更改为61617.I从命令提示符运行以下命令并在浏览器上打开控制台页面。 C:\Users\Infratab Bangalore\Desktop\Queueing\apache-activemq-5.8.0\bin>activemq 现在我想使用JMS将消息从java代码发送到Activemq 。为此,我编写了以下代码。 并使用Apache Tomcat server.it运行我的代码 此代码在Eclipse中实现。 package PackageName; import java.io.IOException; import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Queue; import javax.jms.Session; import javax.jms.TextMessage; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.apache.activemq.ActiveMQConnectionFactory; public class MessageProducer extends HttpServlet { @Override protected void service(HttpServletRequest arg0, HttpServletResponse arg1) throws ServletException, IOException { try { //created ConnectionFactory […]

任何可以解析ANSI x12和UN / EDIFACT标准的EDI文件的开源java库?

是否有任何开源java库可以解析ANSI X12和UN / EDIFACT标准的EDI文件? 我找到了smooks (http://www.smooks.org),它支持UN / EDIFACT标准,但不确定这是否支持ANSI X12标准的EDI文件。 提前致谢。

控制EJB 3.1中的CDI启动

我是新来的,也是CDI世界的新手,我在工作中得到的第一项任务就是找到一种控制CDI上传的方法。 我们使用EJB 3.1和CDI 1.0 ,并且因为它们由不同的容器控制,我们可以通过使用@Startup和@Singleton注释来控制EJB Managed Beans的启动时间和顺序。 但是我在我的类中声明的@Inject CDI bean因为CDI容器尚未启动而变为null。 我已经尝试了几天来寻找解决方案,而我在这里找到的解决方案没有用(仍然是空的)。 我们正在使用Java EE 6并在WebSphere Application Server 8上运行该应用程序。 请问,如果你能帮我找到一种方法来控制内部和不管EJB的CDI上传? 这是一个示例代码: import javax.annotation.PostConstruct; import javax.ejb.Singleton; import javax.ejb.Startup; @Singleton @Startup public class BaseStartupLoader{ /** * Default constructor. */ @Inject @MyStartup BaseStartUp myStartup; private static Logger m_logger = LoggerFactory.getLogger(BaseStartupLoader.class); public BaseStartupLoader() { } @PostConstruct public void init(){ String applicationName […]

无法运行arquillian测试

我正在尝试使用Arquillian进行一些unit testing,但是我无法找到使用Maven部署时失败的原因。 这是class级考试: 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(“”.getBytes()), ArchivePaths.create(“beans.xml”)); } @Test public void testInjection(){ Assert.assertEquals(“Hello World”, […]

Resteasy和fileupload:没有内容处理错误

我有一个可以上传文件的rest资源。 @Path(“/rest/input”) public class InputResourceBean { @POST @Path(“{directory: .*}”) @Consumes(“multipart/form-data”) public void post(final String directory, final MultipartFormDataInput input) { } 我已经使用SOAPUI,curl和HTML表单来测试这段代码,并且对于所有这些代码我都得到了同样的错误:在部分内部找不到Content-Disposition标头 12:55:19,739 WARN [org.jboss.resteasy.core.SynchronousDispatcher] Failed executing POST /rest/input/myDir: org.jboss.resteasy.spi.ReaderException: java.lang.RuntimeException: Could find no Content-Disposition header within part at org.jboss.resteasy.core.messagebody.ReaderUtility.doRead(ReaderUtility.java:123) [:6.0.0.Final] at org.jboss.resteasy.core.messagebody.ReaderUtility.doRead(ReaderUtility.java:93) [:6.0.0.Final] at org.jboss.resteasy.core.MessageBodyParameterInjector.inject(MessageBodyParameterInjector.java:146) [:6.0.0.Final] at org.jboss.resteasy.core.MethodInjectorImpl.injectArguments(MethodInjectorImpl.java:114) [:6.0.0.Final] at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:137) [:6.0.0.Final] at org.jboss.resteasy.core.ResourceMethod.invokeOnTarget(ResourceMethod.java:252) [:6.0.0.Final] […]

JSF 2.0每次从selectOneMenu中选择一个项目时,如何显示不同的h:panelGroup

我有一个selectOneMenu,显示一些不同的东西类别: 我需要根据所选类别显示不同的panelGroup。 示例(选择第一项时需要显示此项) 我不知道该怎么做,因为我需要刷新页面。 有任何想法吗? Ajax可以帮助我吗? 如果是这样,有人可以告诉我怎么样? 我根本不熟悉。

用于数据模型的CDI生产者方法

我希望能够@Inject支持RichFaces 4 ExtendedDataTable的数据模型,但它需要EntityManager来完成它的工作。 当然,EntityManager的查询需要知道Class,我宁愿不将它传递给方法调用(在这种情况下,我的代码不调用这些方法); 理想情况下,它将在构造函数中。 像这样的东西: public class DataModel { @Inject private EntityManager em; private Class entityClass; public DataModel(Class entityClass) { this.entityClass = entityClass; } //Sample method – this class will handle much more complex queries public T findEntity(String key) { return em.find(entityClass, key); } 是否可以创建一个CDI @Producer,可用于将此DataModel注入我的支持bean? 我想过制作一个限定符,所以你可以做类似的事情 @Inject @JType(value = MyEntity.class) DataModel dataModel; 但这看起来很笨拙,并且还需要我的@Producer调用new() […]