标签: glassfish

JavaEE6 + REST:如何在运行时获取所有REST资源?

是否有可能在运行时获取所有已注册REST资源的列表?

使用REST资源我的意思是:

  • 任一具有注释,比如@Path(...) 在运行时由服务器(因此横穿使用反射不会做所有类)被认为是,
  • 或所有路径的URI(REST类可以有多个路径).

注1:我使用自动配置(JavaEE 6的新功能)和Netbeans只生成一个空ApplicationConfig类.

注2:使用Netbeans 6.9,JavaEE 6,Glassfish 3.是否需要有关我的生态系统的更多信息?

java rest web-services glassfish java-ee

1
推荐指数
1
解决办法
1753
查看次数

@PersistenceContext和静态属性

现在是时候问一下关于JPA的noob问题了.

我有一个简单的应用程序,所以想为我的所有实体制作一个简单的dao类.

import java.io.Serializable;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.PersistenceContext;
import org.hibernate.Session;

public class GenericDAO implements Serializable {

public GenericDAO() {
}

@PersistenceContext(unitName="TestAppPU")
public static EntityManager em;

public static <T> void save(T smth) {
    em.persist(smth);
}
public static <T> void merge(T smth) {
    em.merge(smth);
}
public static <T> void remove(T smth) {
    em.remove(smth);
    em.flush();
}

public static <T> List<T> getAll(Class<T> cls) {
    return (List<T>) ((Session) em.getDelegate()).createCriteria(cls).list();
}
}
Run Code Online (Sandbox Code Playgroud)

我试着像这样使用它:

testEntitys =GenericDAO.getAll(TestEntity.class);
Run Code Online (Sandbox Code Playgroud)

但它使用NullPointerException来破坏getAll()中的"em",因此看起来它没有像我预期的那样使用@PersistanceContext设置.

当我在托管bean中使用它时@PersistanceContext工作正常:

@ManagedBean
@SessionScoped
public class TestBean {


    @PersistenceContext(unitName="TestAppPU") …
Run Code Online (Sandbox Code Playgroud)

jpa glassfish java-ee

1
推荐指数
1
解决办法
3146
查看次数

Glassfish EJB Timer服务与只读或锁定的Derby数据库有关

我有两个Solaris服务器,每个服务器都安装了Glassfish 3.1.1(Build 12)和Java 1.6.0_27.Glassfish服务器似乎功能齐全,但我无法部署利用EJB Timer Service的应用程序.默认情况下,Timer Service依赖于在默认"__TimerPool"连接池中创建的表"EJB_ TIMER _TBL"来存储状态信息.在一台服务器上,错误是:

java.sql.SQLException:对于只读连接,用户或数据库,不允许更改SQL数据.

在另一台服务器上,错误是:

ERROR 40XL1:在请求的时间内无法获得锁定

我原以为这个问题与文件权限有关.但是我已经查看了Java和Glassfish安装的文件权限和所有权,包括"domains/domain1/lib/databases/ejbtimer"下的derby数据库文件,它们与我没有遇到此问题的其他Solaris服务器上的相同.

您是否有任何想法会导致Derby数据库在全新的Glassfish和Java安装中"只读"或"锁定"? 我知道这里可能有两个不同的原因,但是两个服务器上的相同安装步骤同时出现了两个原因.

以下是Glassfish server.log的堆栈跟踪的更多部分:

锁定堆栈:

[#| 2011-10-07T17:35:21.739 + 0000 |警告| glassfish3.1.1 | javax.enterprise.system.container.ejb.com.sun.ejb.containers | _ThreadID = 10; _ThreadName =线程2; | EJB5108:无法初始化EJB Timer Service.可能的原因是未正确配置计时器资源,尚未启动数据库,或尚未创建计时器数据库表.来自com.sun.ejb.containers.BaseContainer.completeNewTx(BaseContainer.java:5091)的com.sun.ejb.containers.BaseContainer.processSystemException(BaseContainer.java:5193)中的javax.ejb.EJBException ...

通过引起:异常[的EclipseLink-4002](Eclipse持久服务- 2.3.0.v20110604-r9504):org.eclipse.persistence.exceptions.DatabaseException内部异常:java.sql.SQLTransactionRollbackException:一个锁不能的时间内获得请求错误代码:30000电话:SELECT "的timerId", "的applicationID", "BLOB", "数据筒", "CREATIONTIMERAW", "INITIALEXPIRATIONRAW", "INTERVALDURATION", "LASTEXPIRATIONRAW", "OWNERID", "PKHASHCODE","时间表","状态"来自"EJB_ TIMER _TBL"WHERE(("OWNERID"=?)AND("STATE"=?))bind => [2个参数绑定]查询:ReadAllQuery(name ="findTimersByOwnerAndState"referenceClass = TimerState sql ="SELECT "的timerId", "的applicationID", "BLOB", "数据筒", "CREATIONTIMERAW", "INITIALEXPIRATIONRAW", "INTERVALDURATION", "LASTEXPIRATIONRAW", "OWNERID", "PKHASHCODE", "SCHEDULE", "STATE" FROM "EJB_ TIMER _TBL" WHERE(( "OWNERID"=?)AND( "国家"=?))")在org.eclipse.persistence.exceptions.DatabaseException.sqlException(DatabaseException.java :333)org.eclipse.persistence.internal.databaseaccess.DatabaseAccessor.basicExecuteCall(DatabaseAccessor.java:644)...

引发者:java.sql.SQLException:在org.apache.derby.impl.jmplc.SQLExceptionFactory40的org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(未知来源)请求的时间内无法获得锁定. …

installation ejb glassfish derby

1
推荐指数
1
解决办法
5490
查看次数

如何在Glassfish中设置日志记录级别?

我们正在运行glassfish 2.1;我想减少记录到server.log的聊天内容,但是找不到什么配置文件可以执行此操作。(我假设这将使用log4J语法。)谢谢!

logging glassfish glassfish-2.x

1
推荐指数
1
解决办法
8302
查看次数

在Glassfish Web部署之后执行代码

我正在尝试在Glassfish上运行java Web服务.有一些初始化代码可以设置一些变量并从Glassfish环境本身检索一些信息.我在@WebService类的静态初始化程序中有这个代码,但是这个代码看起来太早了,它在部署WebService端点后立即运行,而我需要在整个Web服务成功部署后运行它.

我尝试将代码移动到WebService类的构造函数中,然后该代码仅在我进入Tester Web页面并发送一些数据以运行Web方法时运行.

有没有办法在整个Web服务部署完成后立即设置一些初始化代码?

java deployment web-services glassfish web-deployment

1
推荐指数
1
解决办法
2348
查看次数

Apache Tomcat适用于MySQL或Jetty还是Glassfish?

我使用Java中的Restlet API为iPhone/iPad设备开发了WebService .

我们的服务器是Linux CentOS,2GB RAM,14GB磁盘空间.

我正在使用Apache Tomcat 6.0.35和MySQL 5.1数据库.

例如,这些用户可能有许多并发用户说100000.

所以我的问题是Apache Tomcat和MySQL是它的最佳组合,或者我应该更改像Jetty或Glassfish或任何其他Web服务器MySQL或其他数据库的组合

但我担心组合的表现.

所以请指导我.

提前致谢.

java webserver tomcat jetty glassfish

1
推荐指数
1
解决办法
732
查看次数

glassfish v4 ClassNotFoundException

我仍在尝试让JavaFX-samples-2.2.25 DataApp为我工作.我按照它的指示再次从头开始,并没有改变/添加任何东西.我得到以下glassfish服务器错误:

INFO:   EJB5181:Portable JNDI names for EJB CumulativeLiveSalesFacadeREST: [java:global/DataAppServer/CumulativeLiveSalesFacadeREST, java:global/DataAppServer/CumulativeLiveSalesFacadeREST!com.javafx.experiments.dataapp.server.service.CumulativeLiveSalesFacadeREST]
INFO:   EJB5181:Portable JNDI names for EJB RegionFacadeREST: [java:global/DataAppServer/RegionFacadeREST!com.javafx.experiments.dataapp.server.service.RegionFacadeREST, java:global/DataAppServer/RegionFacadeREST]
INFO:   EJB5181:Portable JNDI names for EJB LiveSalesListFacadeREST: [java:global/DataAppServer/LiveSalesListFacadeREST!com.javafx.experiments.dataapp.server.service.LiveSalesListFacadeREST, java:global/DataAppServer/LiveSalesListFacadeREST]
INFO:   WELD-000900 2.0.0 (SP1)
WARNING:   Class 'javax.ejb.PostActivate' not found, interception based on it is not enabled
WARNING:   Class 'javax.ejb.PrePassivate' not found, interception based on it is not enabled
INFO:   WebModule[null] ServletContext.log():Marking servlet ServletAdaptor as unavailable
SEVERE:   WebModule[/DataAppServer]Error loading WebappClassLoader (delegate=true; repositories=WEB-INF/classes/) com.sun.jersey.spi.container.servlet.ServletContainer
java.lang.ClassNotFoundException: com.sun.jersey.spi.container.servlet.ServletContainer
    at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1761)
    at org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1611)
    at org.apache.catalina.core.StandardWrapper.loadServletClass(StandardWrapper.java:1533)
    at …
Run Code Online (Sandbox Code Playgroud)

java glassfish javafx-2

1
推荐指数
1
解决办法
9647
查看次数

如何禁用特定WAR或EAR的应用服务器嵌入式库(jar)?

有时您可能third party libraries在项目中有一个可能导致与您发生冲突的问题server-embedded jars.从应用程序服务器中删除嵌入式jar lib folder可能会破坏其他已部署的应用

有没有办法在TomEE,JBoss,GlassFish中只为一个项目禁用服务器嵌入式jar ?

在此输入图像描述

java jboss tomcat glassfish java-ee

1
推荐指数
1
解决办法
1807
查看次数

EJB"B"看起来从EJB"A"失败,如果A在使用EJB中的EJB在Queue中实例化

Glassfish EJB在以下情况下抛出异常(第二次查找失败)

定时服务 - > JMS队列侦听器 - >第一个EJB - >第二个EJB

但如果Queue被删除它的工作正常.

定时服务 - >第一个EJB - >第二个EJB

注意:它们都位于同一空间的同一服务器上.

  1. Timer Service运行30秒并发JMS Message送到队列
  2. 队列成功接收此消息,并调用FirstEjb实例化的函数@EJB
  3. FirstEjb的方法被成功调用,但它尝试在其中实例化的SecondEjb的另一个函数@EJB(有些如何查找失败).

定时器类

@Stateless
public class MyTimer {
    public static final  Logger logger = Logger.getLogger(MyTimer.class);
    public MyTimer() {

    }

    @Schedule(second="*/30", minute="*",hour="*", persistent=false)
    private void scheduledTimeout(final Timer t) {
        logger.warn("********************* MyTimer scheduledTimeout called ********************************");

        MyMessageSender sender = new MyMessageSender();
        sender.sendMessage(" /////////////// Here is …
Run Code Online (Sandbox Code Playgroud)

jms timer glassfish java-ee ejb-3.0

1
推荐指数
1
解决办法
1036
查看次数

带有FormDataContentDisposition的org.glassfish.jersey上传文件

http://www.mkyong.com/webservices/jax-rs/file-upload-example-in-jersey/ 我正在按照本指南操作并遇到问题.我有一些问题.

  1. 所有的依赖都必须对应吗?我的项目有一些org.glassfish.jersey依赖项,本指南建议使用org.sun.jersey.我是否必须使用与此相同的版本进行更改?

    <dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-multipart</artifactId>
    <version>2.16</version>
    </dependency>
    <dependency>
    <groupId>org.glassfish.jersey.core</groupId>
    <artifactId>jersey-server</artifactId>
    <version>2.16</version>
    
    Run Code Online (Sandbox Code Playgroud)

  2. 我有这个错误

    org.glassfish.jersey.server.model.ModelValidationException: Validation of the application resource model has failed during application initialization. [[FATAL] No injection source found for a parameter of type public ***.***.****.common.dto.response.AbstractResponse ***.***.****.m2m.instancetypeupload.webservice.InstanceTypeUploadWebService.upload(java.io.InputStream,org.glassfish.jersey.media.multipart.FormDataContentDisposition) at index 0.; source='ResourceMethod{httpMethod=POST, consumedTypes=[multipart/form-data], producedTypes=[application/json], suspended=false, suspendTimeout=0, suspendTimeoutUnit=MILLISECONDS, invocable=Invocable{handler=ClassBasedMethodHandler{handlerClass=class ***.***.****.m2m.instancetypeupload.webservice.InstanceTypeUploadWebService, handlerConstructors=[org.glassfish.jersey.server.model.HandlerConstructor@90516e]}, definitionMethod=public ***.***.***.common.dto.response.AbstractResponse ***.***.*****.m2m.instancetypeupload.webservice.InstanceTypeUploadWebService.upload(java.io.InputStream,org.glassfish.jersey.media.multipart.FormDataContentDisposition), parameters=[Parameter [type=class java.io.InputStream, source=file1, defaultValue=null], Parameter [type=class org.glassfish.jersey.media.multipart.FormDataContentDisposition, source=file1, defaultValue=null]], responseType=class ***.***.***.common.dto.response.AbstractResponse}, nameBindings=[]}']
    
    Run Code Online (Sandbox Code Playgroud)

    这是我的网络服务

    @POST
    @Path("/upload")
    @Consumes(MediaType.MULTIPART_FORM_DATA)
    @Produces(MediaType.APPLICATION_JSON)
    public AbstractResponse upload(@FormDataParam("file1") InputStream file1,
                               @FormDataParam("file1") FormDataContentDisposition filename1
                              ) …
    Run Code Online (Sandbox Code Playgroud)

java rest multipartform-data glassfish jersey-2.0

1
推荐指数
1
解决办法
3939
查看次数