Tag: glassfish

REST服务中的Java 8 Lambda表达式无法正常工作

如果我将一个Java 8 Lambda表达式放在REST服务中,它就会崩溃。 如果我删除lambda表达式,它的工作原理。 如果我使用lambda表达式并不重要。 只是存在lambda足以崩溃。 Java 8相关的所有其他内容似乎都有效。 以下是我的代码(简化): @Path(“finance”) public class FinanceRest { @GET @Produces(“text/plain”) public String speak() { return “Hello world.”; } private void lambdaFunction(Predicate predicate) { // Any lambda will cause problems, no matter how simple List numbers = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9); Stream onlyOdds = numbers.stream().filter(n […]

Java,JPA,Glassfish,无效资源:jdbc / __ default__pm

我使用Glassfish 3.1.2.2(build 5),JPA,EclipseLink,MySQL 我通过Glassfish管理面板创建了MySQL池。 从GF管理面板ping到MySQL是可以的。 我用persistence.xml创建了app: org.eclipse.persistence.jpa.PersistenceProvider 我试图部署它并得到错误: Invalid resource : jdbc/__default__pm [#|2012-11-16T02:20:59.480+0400|SEVERE|glassfish3.1.2|javax.enterprise.system.core.com.sun.enterprise.v3.server|_ThreadID=43;_ThreadName=Thread-2;|Invalid resource : jdbc/__default__pm java.lang.RuntimeException: Invalid resource : jdbc/__default__pm GF日志中的Stacktrace是巨大的。 由…开始 at com.sun.enterprise.connectors.ConnectorRuntime.lookupDataSourceInDAS(ConnectorRuntime.java:540) at com.sun.enterprise.connectors.ConnectorRuntime.lookupPMResource(ConnectorRuntime.java:469) at org.glassfish.persistence.common.PersistenceHelper.lookupPMResource(PersistenceHelper.java:63) at org.glassfish.persistence.jpa.ProviderContainerContractInfoBase.lookupDataSource(ProviderContainerContractInfoBase.java:71) …. 有没有人有想法发生了什么,该怎么办?

自定义JAX-RS授权 – 在每个请求中使用JWT

我有一个JAX-RS服务,我希望所有用户都能访问我的服务,但只有那些有权查看结果的用户。 基于角色的安全性和现有的REALMS和身份validation方法不符合我的要求。 例如: 用户对一个REST服务进行身份validation,然后向他发送带有其ID的JWT令牌 用户请求其他资源,并在每个请求中向他的JWT发送他的ID 我检查他的用户ID(来自JWT),如果业务逻辑返回结果我发回去,否则我发送空结果集或特定HTTP状态 问题是:我应该在哪里检查用户ID,在一些单独的filter,安全上下文或每个REST方法实现中? 如何使用此ID提供REST方法,在按ID过滤请求后,是否可以在每个方法中注入securityContext? 我正在使用GlassFish 4.1和Jersey JAX-RS实现。

将参数设置为IN表达式的列表

每当我尝试将列表设置为在IN表达式中使用的参数时,我都会得到一个Illegal参数exception。 互联网上的各种post似乎表明这是可能的,但它肯定不适合我。 我正在使用Glassfish V2.1和Toplink。 有没有其他人能够让这个工作,如果是这样的话怎么样? 这是一些示例代码: List logins = em.createQuery(“SELECT a.accountManager.loginName ” + “FROM Account a ” + “WHERE a.id IN (:ids)”) .setParameter(“ids”,Arrays.asList(new Long(1000100), new Long(1000110))) .getResultList(); 以及堆栈跟踪的相关部分: java.lang.IllegalArgumentException:您试图为参数accountIds设置类型类java.util.Arrays $ ArrayList的值,具有类java.lang.Long的预期类型来自查询字符串SELECT a.accountManager.loginName FROM Account a WHERE a .id IN(:accountIds)。 at oracle.toplink.essentials.internal.ejb.cmp3.base.EJBQueryImpl.setParameterInternal(EJBQueryImpl.java:663) at oracle.toplink.essentials.internal.ejb.cmp3.EJBQueryImpl.setParameter(EJBQueryImpl.java:202) 在com.corenap.newtDAO.ContactDaoBean.getNotificationAddresses(ContactDaoBean.java:437) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 在java.lang.reflect.Method.invoke(Method.java:597) 在com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) 在com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at […]

正确使用JDBC连接池(Glassfish)

我需要在作为会话bean实现的Java Web服务中建立数据库连接,我不确定我是否正确执行。 我创建了一个类 public final class SQLUtils { //….. private static DataSource m_ds=null; static { try { InitialContext ic = new InitialContext(); m_ds = (DataSource) ic.lookup(dbName); //Connection pool and jdbc resource previously created in Glassfish , dbName contains the proper JNDI resource name } catch (Exception e) { e.printStackTrace(); m_ds = null; } } public […]

无法在glassfish 3.1中将字符集从ISO-8859-1更改为UTF-8

我在将Web应用程序响应中的字符集从ISO-8859-1(默认)更改为UTF-8时遇到问题。 我已经将VM选项-Dfile.encoding=UTF-8到JVM选项中 但是,我仍然得到以下HTTP标头作为来自glassfish的响应: Content-Type: […;charset=ISO-8859-1] Server: [GlassFish Server Open Source Edition 3.1] 非常感谢您的帮助/想法。

如何从客户端创建远程会话EJB

根据EJB客户端应用程序的Netbeans教程 ,我似乎无法调用该方法: 编译错误: -do-compile: [mkdir] Created dir: /home/thufir/NetBeansProjects/EntAppClient/build/empty [mkdir] Created dir: /home/thufir/NetBeansProjects/EntAppClient/build/generated-sources/ap-source-output [javac] Compiling 1 source file to /home/thufir/NetBeansProjects/EntAppClient/build/jar [javac] /home/thufir/NetBeansProjects/EntAppClient/src/java/entappclient/Main.java:16: error: cannot find symbol [javac] System.err.println(“result = ” + mySession.getResult()); [javac] ^ [javac] symbol: method getResult() [javac] location: variable mySession of type MySessionRemote [javac] 1 error BUILD FAILED 客户: package entappclient; import ejb.MySessionRemote; import […]

使用.html文件作为JSP

这可能是一个愚蠢的问题,但我在谷歌上搜索时没有找到答案。 目前,我将来自someFileName.html的请求映射到servlet,然后使用web.xml中的servlet映射将其转发到someFileName.jsp。 我想避免这种情况,只需配置我的应用程序服务器,以便解析和执行html文件,就好像它们是JSP一样(这样可以在HTML中使用自定义标记和EL)。 奖励答案,允许任何扩展映射到JSP处理器。 我使用Tomcat,但我希望解决方案可以移植到其他容器,如Glassfish。