在项目中,我使用Seam 3,我注射有问题EntityManager与@Inject注解.我很确定有某种配置可以确保EnityManager知道PersistenceUnit要使用哪种配置.例如,EJB你可以输入:
@PersistenceContext(unitName="MY_PERSISTENCE_UNIT_NAME")
private EntityManager eManager;
Run Code Online (Sandbox Code Playgroud)
在persistence.xml文件中配置了哪个持久性单元.这是我的伪配置:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="MY_PERSISTENCE_UNIT_NAME" transaction-type="JTA">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<jta-data-source>java:jboss/TimeReportDS</jta-data-source>
<mapping-file>META-INF/orm.xml</mapping-file>
<class>....</class>
<class>....</class>
<class>....</class>
<properties>
<property name="jboss.entity.manager.factory.jndi.name"
value="java:/modelEntityManagerFactory" />
<!-- PostgreSQL Configuration File -->
<property name="hibernate.connection.driver_class" value="org.postgresql.Driver" />
<property name="hibernate.connection.password" value="password" />
<property name="hibernate.connection.url" value="jdbc:postgresql://192.168.2.125:5432/t_report" />
<property name="hibernate.connection.username" value="username" />
<!-- Specifying DB Driver, providing hibernate cfg lookup
and providing transaction manager configuration -->
<property …Run Code Online (Sandbox Code Playgroud) 我正在尝试建立一个基于JBoss AS7的Web应用程序堆栈,用于满足以下要求的小规模研究原型和学生项目:
我想使用与Ajax相关的范围,例如ViewScope - 或者可能是MyFaces Orchestra中的(View)AccessScope - 用于我的托管bean,以及PrimeFaces组件.
基于JPA的持久性应该相当简单,无需处理OpenSessionInView模式等.我对JPA2的主要问题是可怕的LazyInitializationException,尤其是在AJAX调用中.我不要求在谈话手动控制.
我希望尽可能少地使用依赖项,因此主要依赖于JBoss AS7附带的内容.
现在,我已经建立了一个项目,其中包含以下(主要是提供的)Maven依赖项:
到目前为止看起来相当苗条.缺少的是对JSF特定范围的进一步支持,并且当在JSF页面中迭代集合时,我总是得到一个LazyInitializationException.现在,我的持久性服务类看起来像这样:
import javax.ejb.Stateful;
import javax.enterprise.context.RequestScoped;
@Stateful @RequestScoped
public class TestEntityService implements Serializable {
@PersistenceContext(type=PersistenceContextType.EXTENDED)
private EntityManager entityManager;
// ... some methods working with the entityManager ...
}
Run Code Online (Sandbox Code Playgroud)
和我的ResourceFactory bean:
public class ResourceFactory {
@Produces @PersistenceUnit
private EntityManagerFactory entityManagerFactory;
}
Run Code Online (Sandbox Code Playgroud)
我尝试过失败与组合@Named代替@Stateful或@SessionScoped代替@RequestScoped.然而,我发现添加Seam 3 Persistence,Solder&Faces模块似乎可以解决我的大多数问题,但这会为我的项目增加大量的新依赖项(例如,seam-security,prettyfaces,drools,joda-time和其他依赖项) ).
我的问题是: …
这可能是一个糟糕的问题,但我没有找到任何好的教程,展示如何创建一个eclipse的seam 3项目.我看到我需要maven,jboss,seam 3和eclipse helios ...然后我已经下载了所有但是无法创建项目...还有m2eclipse插件......有人知道一个很好的教程,或者可以帮助创建这个项目?谢谢大家.
我无法解决这个问题。来源是:
try {
// 1) Load Docx file by filling Velocity template engine and cache it to the registry
InputStream in = new FileInputStream("/test.docx");
IXDocReport report = XDocReportRegistry.getRegistry().loadReport(in,TemplateEngineKind.Velocity);
// 2) Create context Java model
IContext context = report.createContext();
context.put("user", variables.get("user"));
// 3) Generate report by merging Java model with the Docx
OutputStream out = new FileOutputStream(new File("/test_Out.docx"));
report.process(context, out);
} catch (IOException e) {
e.printStackTrace();
} catch (XDocReportException e) {
e.printStackTrace();
}
Run Code Online (Sandbox Code Playgroud)
当我尝试执行此代码时,出现错误:
09:03:15,608 ERROR [stderr] (http--127.0.0.1-8080-1) fr.opensagres.xdocreport.core.XDocReportException: Impossible to …Run Code Online (Sandbox Code Playgroud) 我正在开始新的企业应用程序.我选择了以下技术:jee6(jsf + primefaces,ejb)和hibernate.我将部署在Glassfish 3上.
问题是我应该选择哪种Seam版本?我知道Seam 3是最新的,但Seam 2似乎正在开发中.我快速浏览了Seam 2和3文档,Seam 2看起来更容易(特别是安全模块)
seam3 ×5
java ×3
cdi ×2
seam ×2
inputstream ×1
java-ee ×1
jboss7.x ×1
jpa-2.0 ×1
jsf-2 ×1
persistence ×1
report ×1
seam2 ×1
xdocreport ×1