我有一个Java项目,内部依赖于它asm jar.奇怪的是,我甚至不知道为什么我的项目以某种方式依赖于这个库(可能由maven引入作为传递依赖)?
任何人都可以帮助我知道为什么有人需要asm jar?
提前致谢 !
编辑: 你还可以提一下可能需要什么用途/用例asm jar?
我刚刚开始学习CDI和Java EE 6,但我发现这段代码我想完全理解.
@Stateful
@Model
public class MemberRegistration {
@Inject
private EntityManager em;
@Inject
private Event<Member> memberEventSrc;
private Member newMember;
@Produces
@Named
public Member getNewMember() {
return newMember;
}
}
Run Code Online (Sandbox Code Playgroud)
然后......我看到一个jsf页面newMember像这样引用了这个对象:
<h:inputText value=#{newMember.name}/>
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:如果我@Named在任何对象的变量中放置一个注释并不重要,无论如何它都可以从JSF代码访问?此外,有什么的使用@Produces在这种情况下,最后被@Stateful优先于@StatelessJava EE 6中?如果是这样的话?
我想在从Java Web应用程序(Wicket)调用它们的方法时将身份验证信息传递给EJB无状态会话bean.该信息由用户ID和身份验证类型(记住cookie或用户/密码)组成,并存储在http会话中.一个明显的解决方案是将此作为参数添加到所有EJB方法,但这很麻烦,我希望存在另一种解决方案.
EJB bean的JNDI查找是通过Web层中的javax.naming.InitialContext#lookup(String)完成的.
是否有一种可移植的方法可以将身份验证信息添加到调用上下文中,以便bean可以使用它?我需要此过程可用于EJB层(对于最终的Web服务端点)和Web层中的调用者.
我正在使用Java EE 6.不使用CDI,我宁愿避免实现它.
身份验证由Web层处理,无状态bean验证记住cookie和用户/密码组合.当访问者首次访问该站点时,将尝试使用remember cookie进行身份验证.最终需要时,系统会要求用户使用用户名和密码登录.如上所述,身份验证状态存储在http会话中.我不使用基于领域的Java EE安全模型,因为我无法弄清楚如何正确集成此身份验证流程.
授权方案基于动态角色,类似于Facebook根据2个用户和某些偏好之间的链接确定授权的方式.某些操作还会考虑身份验证类型.例如,修改帐户设置需要用户/密码,而cookie是不够的.根据我的理解,Java EE标准组和角色不适合这个要求.
EJB3&JAAS主题/主体如何从servlet容器传播到EJB层?
我希望我的问题很清楚.如果需要更多信息,我很乐意提供.
固定链接.添加关于CDI的说明.
我对JPA标准有疑问.
这是我的JPA条件查询:
CriteriaBuilder criteriaBuilder = getEm().getCriteriaBuilder();
CriteriaQuery<InventoryItemSumReport> query = criteriaBuilder.createQuery(InventoryItemSumReport.class);
Root<InventoryItemDetail> from = query.from(InventoryItemDetail.class);
Join<InventoryItemDetail, InventoryItem> joinItem = from.join(InventoryItemDetail_.inventoryItem);
Predicate where = criteriaBuilder.lessThanOrEqualTo(from.get(InventoryItemDetail_.effectiveDate), date);
query.multiselect(joinItem.get(InventoryItem_.product),joinItem.get(InventoryItem_.facility),joinItem.get(InventoryItem_.customer));
query.groupBy(joinItem.get(InventoryItem_.product),joinItem.get(InventoryItem_.facility),joinItem.get(InventoryItem_.customer));
query.where(where);
TypedQuery<InventoryItemSumReport> createQuery = getEm().createQuery(query);
List<InventoryItemSumReport> resultList = createQuery.getResultList();
Run Code Online (Sandbox Code Playgroud)
以下是JPA提供程序生成的结果查询:
select
inventoryi1_.PRODUCT_ID as col_0_0_,
inventoryi1_.FACILITY_ID as col_1_0_,
inventoryi1_.CUSTOMER_ID as col_2_0_
from
INVENTORY_ITEM_DETAIL inventoryi0_
inner join
INVENTORY_ITEM inventoryi1_
on inventoryi0_.INVENTORY_ITEM_ID=inventoryi1_.ID
inner join
PRODUCT product2_
on inventoryi1_.PRODUCT_ID=product2_.ID
inner join
FACILITY facility3_
on inventoryi1_.FACILITY_ID=facility3_.ID
inner join
CUSTOMER customer4_
on inventoryi1_.CUSTOMER_ID=customer4_.ID
where
inventoryi0_.EFFECTIVE_DATE<= ?
group by
inventoryi1_.PRODUCT_ID , …Run Code Online (Sandbox Code Playgroud) 我有一个servlet,用于从许多第三方REST数据点获取数据,集成所有数据并以HTML格式报告数据.我也有一个过滤器,其流程如下 -
现在,如果我使用异步servlet AsyncContext context = request.getAsyncContext();,它将与相同的REST数据点进行通信,但是当数据准备就绪时,它将写入响应流而不是等待所有REST数据点响应,我将如何重写我的过滤器?是否会附加到负责从REST数据点刷新数据的线程,以便一旦处理完所有数据并将其记录下来,它将记录事件记录?有没有可以学习的常见模式来理解如何使用Servlet 3.0的异步servlet处理这样的用例?我使用的是JDK 6.0,Tomcat 7.0.
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import javax.persistence.criteria.Root;
Run Code Online (Sandbox Code Playgroud)
我已经创建了一个JPA项目,我尝试使用上面的类,但是我无法找到他缺少的jar.请指导我.
我正在读一本关于Java EE 6的书,我遇到了以下几个部分:
"无状态:会话bean在方法之间不包含会话状态,任何实例都可以用于任何客户端."
"有状态:会话bean包含会话状态,必须在单个用户的方法中保留."
"会话状态"是什么意思?有人用现实世界的例子来解释它吗?
提前致谢.
II.为什么豆类的这种分类如此重要?无论是正确的解释还是初学者(乍看之下)都没有说明任何事情.所以,多亏了你,我得到了逻辑上的区别,但为什么这种行为如此重要呢?
是否可以在CDI事件中使用类型差异?这是案例:
MyEvent和子类DummyEventList<? extends MyEvent>,其中包含DummyEvent实例我怎样才能做到这一点?
如果我遍历调用fire()每个事件的集合,它将调用@Observes MyEvent evt但不调用@Observes DummyEvent evt方法.
**更新**
创建示例代码以阐明问题:
https://github.com/jfaerman/jfaerman/blob/master/test-cdi/src/main/java/jfaerman/App.java
我希望事件被激发两次,一次单独一次,一次从列表中.
我对以下情况中使用哪个有点困惑:
假设servlet创建一个处理用户http会话的Application,应用程序是这样的:
public class Application extends AbstractHTTPApplication {
@Inject
private Instance<MainView> mainView;
public void setupApplication() {
this.setView( mainView.get() );
}
Run Code Online (Sandbox Code Playgroud)
后来我有一个@SessionScopedbean SSB,我想注入每个用户的bean:
@SessionScoped
public class SSB {}
Run Code Online (Sandbox Code Playgroud)
现在,当我尝试使用常规@Inject SSB ssb;字段时MainView,我没有SSB为每个用户获取新内容:
public class MainView {
@Inject
private SSB usersSSB;
public someMethod() {
usersSSB.doSomething();
System.identityHashCode( usersSSB );
}
}
Run Code Online (Sandbox Code Playgroud)
在两个用户的测试中,我在两个用户的会话中得到了相同的实例usersSSB.我认为这不可能......我想,既然SSB是SessionScoped,每个用户会话都会有一个新的,无论它在哪里@Inject编辑,它都会引用该用户的SSB.
相反,我试过:
public class MainView {
@Inject
private Instance<SSB> usersSSB;
public someMethod() {
usersSSB.get().doSomething(); …Run Code Online (Sandbox Code Playgroud) 我能够在standalone.xml中配置MySQL DataSource并且工作正常.但我想使用@DataSourceDefinition注释配置DataSource .
如何在JBoss AS7中使用@DataSourceDefinition配置MySQL数据源?
我已经尝试过的是:
@DataSourceDefinition(
className = "com.mysql.jdbc.Driver",
name = "java:global/jdbc/MyDS",
serverName="localhost",
portNumber=3306,
user = "root",
password = "admin",
databaseName = "test"
)
@Startup
public class DBConfig {
}
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="javaee6-app" transaction-type="JTA">
<jta-data-source>java:global/jdbc/MyDS</jta-data-source>
<properties>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="true"/>
</properties>
</persistence-unit>
</persistence>
Run Code Online (Sandbox Code Playgroud)
我有mysql连接器jar文件WEB-INF/lib.
但是当我部署应用程序时,我收到此错误:
(DeploymentScanner-threads - 2){"JBAS014653:复合操作失败并被回滚.失败的步骤:"=> {"操作步骤-2"=> {"JBAS014771:缺少/不可用依赖的服务"=> [" jboss.persistenceunit.\ "javaee6-app.war#javaee6-应用程序\" jboss.naming.context.java.global.jdbc.MyDSMissing [jboss.persistenceunit.\ "javaee6-app.war#javaee6-应用程序\" 的JBoss. naming.context.java.global.jdbc.MyDS]"]}}}
java-ee-6 ×10
java-ee ×6
cdi ×3
java ×3
ejb-3.0 ×2
jboss-weld ×2
criteria-api ×1
events ×1
jboss7.x ×1
jpa ×1
jpa-2.0 ×1
jsf ×1
jsf-2 ×1
maven-2 ×1
mysql ×1
security ×1
server-push ×1
servlet-3.0 ×1