Tag: java ee 7

FacesServlet URL模式

我不确定我在这里做错了什么,但是当我在URL中将两次面孔上下文时,它绕过了我所有的Realm证券。 我的url格式: Faces /faces/* 安全约束 ADMIN Protected Admin Area /faces/admin/* ADMIN NONE 所以,当我转到: http : //domain.com/faces/admin/index.xthml我得到了正在寻找的正确答案。 但是,如果我转到: http : //domain.com/faces/faces/admin/index.xhtml它完全让我进入,无论servlet预定在/ admin *我最终假设*管理员是导致它的原因。 但是,我如何解决这个问题,使domain.com/faces/faces无效,只有domain.com/faces有效? 我似乎无法找到任何其他人面临这个问题。 所以我一定是做错了。 谢谢

Weblogic 12c和Java EE 7function

众所周知,WebLogic Server 12c本身支持Java EE 7。 但是,如果我们看一下标准的WebLogic 12c文档 ,会有很多版本差异。 如: Java EE 7:Servlet 3.1,JPA 2.1,EL 3.0,JAX-RS 2.0,EJB 3.2,JMS 2.0 WLS 12c:Servlet 3.0,JPA 2.0,EL 2.2,JAX-RS 1.1,EJB 3.1,JMS 1.1 这只是导入图书馆的问题? 或者使用这些最新版本有任何限制? 非常感谢!

JavaEE应用服务器中的CompletableFuture / parallelStream

鉴于新的Java8,我们为异步任务获得了非常好的function,例如CompletableFuture和.paralellStream()。 如果你在Java SE中运行它,因为我已经理解它你将使用ForkJoinPool,但是如果我在例如Wildfly或TomcatEE中运行以下示例会发生什么? //Here I start a comp.Future without giving an Executor test = CompletableFuture.supplyAsync(() -> timeConsumingMethod()); //Here I start a parallel stream mList.paralell().filter(…).collect(Collectors.toList()) 会发生什么,我将从哪里借用我的资源 这些示例在@Stateful bean中运行 这些示例在@Stateless bean中运行 这些示例在CDI bean中运行

如何使用Java EE 7 WebSockets实现对客户端的推送?

我浏览了很多Web Socket示例,演示幻灯片,它们主要集中在客户端发起客户端 – 服务器通信的相当简单的场景中。 我对另一个场景感兴趣,这似乎同样实用:纯服务器推送到客户端。 示例我想到的是一个更新网站上股票价值的应用程序。 想象一下,有一个外部系统股票交易系统,它为每个订阅的股票价值变化发送JMS消息。 我想知道如何将这样的传入JMS事件转换为服务器推送,并从Java EE 7的角度有效地和惯用地转换它。 据我所知,我应该编写一个Web套接字端点 @ServerEndpoint(“/demo”) public class WSEndpoint { private static final Logger LOG = Logger.getLogger(WSEndpoint.class); @OnMessage public void onMessage(String message, Session session) { LOG.info(“Received : ” + message + “, session:” + session.getId()); } @OnOpen public void open(Session session) { LOG.info(“Open session:” + session.getId()); } @OnClose public […]

如何使用Arquillian测试登录/身份validation – Java EE 7

我们有一个Java EE 7应用程序,并使用Arquillian来测试东西。 现在我们要检查当前登录用户的一些权限。 我的问题很基本,如何在测试用例中登录用户? 我读过ProgrammaticLogin在arquillian测试和嵌入式Glassfish,安全性和Arquillian问题上都没有用,但是没有明确回答。 我目前的做法是这样的: // Inject services etc. @Test public void testLogin(){ UserAccount user = new UserAccount(); user.setUsername(“bob”); user.setPassword(“bob”); userAccountService.save(user); ProgrammaticLogin pl = new ProgrammaticLogin(); String realmName = “secureJDBCRealm”; try { pl.login(“bob”, “bob”.toCharArray(), realmName, true); } catch (Exception e){ e.printStackTrace(); } } 现在当我尝试运行它时,得到一个LoginException,声称我没有为“fileRealm”配置LoginModule。 但是“fileRealm”不是我正在寻找的领域(我把它放在那里进行第一次测试,但后来我将其改为“secureJDBCRealm”,这是我们为GlassFish定制的安全领域)。 我们使用arquillian-glassfish-embedded-3.1进行测试。 有谁知道在哪里定义Arquillian王国? 为什么我的应用程序一直在寻找fileRealm? 这是默认值吗? (在这里找不到任何规格)

如何将Gregorian string转换成Gregorian Calendar?

我必须根据日历的日期计算一些东西,但我收到完整的阳历日历的字符串值。 例如,i / p接收{may be – “new GregorianCalendar().toString()”} as String :- java.util.GregorianCalendar[time=1410521241348,areFieldsSet=true,areAllFieldsSet=true,lenient=true,zone=sun.util.calendar.ZoneInfo[id=”Europe/London”,offset=0,dstSavings=3600000,useDaylight=true,transitions=242,lastRule=java.util.SimpleTimeZone[id=Europe/London,offset=0,dstSavings=3600000,useDaylight=true,startYear=0,startMode=2,startMonth=2,startDay=-1,startDayOfWeek=1,startTime=3600000,startTimeMode=2,endMode=2,endMonth=9,endDay=-1,endDayOfWeek=1,endTime=3600000,endTimeMode=2]],firstDayOfWeek=1,minimalDaysInFirstWeek=1,ERA=1,YEAR=2014,MONTH=8,WEEK_OF_YEAR=37,WEEK_OF_MONTH=2,DAY_OF_MONTH=12,DAY_OF_YEAR=255,DAY_OF_WEEK=6,DAY_OF_WEEK_IN_MONTH=2,AM_PM=1,HOUR=0,HOUR_OF_DAY=12,MINUTE=27,SECOND=21,MILLISECOND=348,ZONE_OFFSET=0,DST_OFFSET=3600000] 我想提取日历的日期值来处理进一步的计算。

@Javax.persistence.Lob注释在JPA中有什么意义?

我什么时候应该在JPA中使用@javax.persistence.Lob注释? 此注释可以注释哪些数据类型?

RestEasy客户端所需的jar子

我需要提供一个java REST客户端,它应该包含一个包中所有必需的jar。 我选择RestEasy作为REST框架,因为服务器应用程序是在JBoss上完成的。 到目前为止,我发现的几乎所有示例都使用应用程序容器环境,其中提供了这些lib,因此在编译期间只需要Java EE API或使用Maven构建,因此依赖项会自动解决,这可能是一个好主意,当前的标准方法,但由于项目相关的原因,我需要在lib文件夹中的jar,并能够在构建期间包含一个可执行jar。 所以我的问题是,哪个jar子有必要建立一个可以做类似的简单客户端: ResteasyClient client = new ResteasyClientBuilder().build(); ResteasyWebTarget target = client.target(myURL).queryParam(“param”, “value”); Builder builder = target.request(MediaType.APPLICATION_JSON).header(“user”, “abc”); Invocation invocation = builder.buildGet(); MyResponseObject response = invocation.invoke(MyResponseObject .class);