我正在开发一个简单的应用程序,其中一个EJB应该注入另一个.我在IDEA Jetbrains IDE中开发.但是在我在Ejb本地statless类中创建@EJB注释后,我的IDE突出显示错误:找不到组件接口'ApplicationController'的EJB''.
有谁能说出为什么?
我正在使用EJB3.1和Glassfish 3.1在NetBeans 7中进行开发.我试图从WAR中的POJO引用JAR中的会话Bean的本地接口.当我部署到Glassfish时,我收到:
SEVERE: Unresolved <ejb-link>: TaskTool-ejb#ContextFacade
SEVERE: Exception while deploying the app [com.oracle.eas_TaskTool-ear_ear_1.0-SNAPSHOT]
SEVERE: Error: Unresolved <ejb-link>: TaskTool-ejb#ContextFacade
Run Code Online (Sandbox Code Playgroud)
我使用NetBeans帮助程序生成代码以引用会话Bean的本地接口,并<ejb-local-ref>为我生成了web.xml中的部分.
@Local
public interface ContextFacadeLocal {
void create(Context context);
void edit(Context context);
void remove(Context context);
Context find(Object id);
List<Context> findAll();
List<Context> findRange(int[] range);
int count();
List<Context> findRootContexts();
}
@Stateless
public class ContextFacade extends AbstractFacade<Context> implements ContextFacadeLocal {
@PersistenceContext(unitName = "TaskToolPU")
private EntityManager em;
protected EntityManager getEntityManager() {
return em;
}
public ContextFacade() {
super(Context.class);
}
@Override
public List<Context> findRootContexts() …Run Code Online (Sandbox Code Playgroud) 我正在继续我的JSF 2.0实践.我认为模板是一件好事,它有很多优点.但是今天我对它有了新的疑问.
我为我的网页创建了一个模板.在模板中,我使用标签 对于不同的部分(这些部分稍后将在一个页面中使用组合标记结合一个或多个定义标记来实现).
<ui:insert name="content" />
Run Code Online (Sandbox Code Playgroud)
同样在模板内部,为了避免在模板中添加太多代码,我创建 标签添加一些其他的xhtml块.
<ui:include src="/languageChanger.xhtml"/>
Run Code Online (Sandbox Code Playgroud)
这是我的文件夹结构的样子:

这一切都像我一样工作,但当我在网址导航到languageChanger.xhtml时,我看到了xhtml的复合块:

我的怀疑是:
- 那些大量独立代码放在正确的位置?或者是错误的,不应该允许用户从URL中看到它?
- 这个地方保存有其他组件,如登录,注册......?
- 为了避免用户直接访问组件,我可以将它放在WEB-INF文件夹中,但是我有一个问题,包含标签找不到路径.我该怎么办?
- 什么是最佳实践,在哪里放置这些独立的代码块?
我怀疑在使用JPA时使用构造函数初始化列表和其他字段,具体我的问题如下:
假设我有一个实体bean,它有很多@OneToMany关系,我想使用构造函数初始化它们,这样我就不必在我的控制器中使用这样的语句了:
myEntity=new MyEntity();
myEntity.innerList=new ArrayList<Type>();
myEntity.innerList.add(newObject);
Run Code Online (Sandbox Code Playgroud)
所以相反,我会:
public MyEntity(){
innerList=new ArrayList<Type>();
}
Run Code Online (Sandbox Code Playgroud)
现在,问题是......在从数据库映射属性时,JPA会调用此构造函数吗?我的意思是如果我在整个列表之前保留,构造函数是否会运行并重新初始化我的entites列表?非常感谢.
只是一个简单的问题,因为我无法在Jboss AS 7上找到正确的URL启动指南.当我使用maven项目向导创建一个新项目时...在原型选择中,我找不到以org.jboss.spec开头的人.

我想这是因为我需要首先在maven原型目录中添加一些东西......但我找不到该网站.任何帮助,将不胜感激.非常感谢.
我想创建一个使用JPA的表Person,要求Person应该有一个Person类型的字段来代表一个灵魂伴侣.人可以有一个灵魂伴侣(另一个人),但不是强制性的.
我对如何进行映射感到非常困惑.我不确定这个关键字是否可以帮助我.
我想了解什么是最好的方法.这就是我所做的,但我认为不正确.有人可以帮我纠正它,并解释我这种关系应该如何运作?
使用注释的版本
//DEFINE OneToOne Relationships (SELF JOIN-No mandatory)
@Entity class Person {
@Id
private long identificator;
private String name;
@OneToOne(targetEntity=Person.class mappedby="this")
private Person soulmate;
}
Run Code Online (Sandbox Code Playgroud)
版本使用部署描述符
<persistence-unit-metadata>
<entity-mappings>
<entityclass = “packgagename.Person”>
<attributes>
<id name="identificator"/>
<column name="name"/>
<one-to-one name="soulmate" targetEntity="packgagename.Person" mappedby="this"/>
</attributes>
</entityclass>
</persistence-unit-metadata>
Run Code Online (Sandbox Code Playgroud) GWT框架,Spring框架,Play框架,Seam框架用于为Java创建MVC样式框架.
过去3天我一直在网上搜索是否应该为Java EE 6使用框架,但我很难找到正确的答案.
这篇文章说Java EE 6中不再需要框架了:
我看过这篇文章:
但我仍然没有得到使用什么框架的答案?
真的需要框架吗?如果没有,是否有一个图表将显示等效的Java EE 6框架?
JSF是一个框架吗?
当用户单击any时commandButton,则在托管bean中调用相应的操作。是否可以从@PostConstruct方法或事件侦听器方法中获取此动作名称?
我已经用JBoss 7.1.1建立了一个maven项目,我想使用JavaEE库.在我设置的root pom.xml中:
<repositories>
<repository>
<id>jboss</id>
<url>https://repository.jboss.org/nexus/content/groups/public/</url>
</repository>
</repositories>
Run Code Online (Sandbox Code Playgroud)
我在根pom.xml和ejb maven模块的pom.xml中有这个:
<dependency>
<groupId>org.jboss.spec</groupId>
<artifactId>jboss-javaee-6.0</artifactId>
<version>3.0.2.Final</version>
<scope>provided</scope>
<type>pom</type>
</dependency>
Run Code Online (Sandbox Code Playgroud)
当我这样做时,maven clean install我收到此错误:
Failed to execute goal on project myproject-ejb: Could not resolve dependencies for project myproject:myproject-ejb:ejb:1.0-SNAPSHOT: Failure to find org.jboss.spec:jboss-javaee-6.0:jar:3.0.2.Final in https://repository.jboss.org/nexus/content/groups/public/ was cached in the local repository, resolution will not be reattempted until the update interval of jboss has elapsed or updates are forced -> [Help 1]
Run Code Online (Sandbox Code Playgroud)
我的配置怎么了?
编辑1
如果我从根pom.xml中删除jboss存储库,我收到此错误:
[ERROR] Failed to execute goal on project myproject-ejb: …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用和理解CDI,当我在简单的pojo类中使用@Inject时,它会抛出NPE。
示例Greeting.java
public Class Greeting {
public String greet() {
System.out.println("Hello");
}
}
Run Code Online (Sandbox Code Playgroud)
Test.java
import javax.inject.Inject;
public class Test {
@Inject
private Greeting greeting;
public void testGreet() {
greeting.testGreet();
}
}
Run Code Online (Sandbox Code Playgroud)
当我调用testGreet()时,它抛出NPE,为什么问候实例为null。@Inject添加依赖项的方式仅在容器管理的Bean中使用吗?注意:这里不是jar的问题。