是否有可能在运行时获取所有已注册REST资源的列表?
使用REST资源我的意思是:
@Path(...) 和在运行时由服务器(因此横穿使用反射不会做所有类)被认为是, 注1:我使用自动配置(JavaEE 6的新功能)和Netbeans只生成一个空ApplicationConfig类.
注2:使用Netbeans 6.9,JavaEE 6,Glassfish 3.是否需要有关我的生态系统的更多信息?
现在是时候问一下关于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) 我有两个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(未知来源)请求的时间内无法获得锁定. …
我们正在运行glassfish 2.1;我想减少记录到server.log的聊天内容,但是找不到什么配置文件可以执行此操作。(我假设这将使用log4J语法。)谢谢!
我正在尝试在Glassfish上运行java Web服务.有一些初始化代码可以设置一些变量并从Glassfish环境本身检索一些信息.我在@WebService类的静态初始化程序中有这个代码,但是这个代码看起来太早了,它在部署WebService端点后立即运行,而我需要在整个Web服务成功部署后运行它.
我尝试将代码移动到WebService类的构造函数中,然后该代码仅在我进入Tester Web页面并发送一些数据以运行Web方法时运行.
有没有办法在整个Web服务部署完成后立即设置一些初始化代码?
我使用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或其他数据库的组合?
但我担心组合的表现.
所以请指导我.
提前致谢.
我仍在尝试让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) 有时您可能third party libraries在项目中有一个可能导致与您发生冲突的问题server-embedded jars.从应用程序服务器中删除嵌入式jar lib folder可能会破坏其他已部署的应用
有没有办法在TomEE,JBoss,GlassFish中只为一个项目禁用服务器嵌入式jar ?

Glassfish EJB在以下情况下抛出异常(第二次查找失败)
定时服务 - > JMS队列侦听器 - >第一个EJB - >第二个EJB
但如果Queue被删除它的工作正常.
定时服务 - >第一个EJB - >第二个EJB
注意:它们都位于同一空间的同一服务器上.
Timer Service运行30秒并发JMS Message送到队列@EJB@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) http://www.mkyong.com/webservices/jax-rs/file-upload-example-in-jersey/ 我正在按照本指南操作并遇到问题.我有一些问题.
所有的依赖都必须对应吗?我的项目有一些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)
我有这个错误
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)glassfish ×10
java ×6
java-ee ×4
rest ×2
tomcat ×2
web-services ×2
deployment ×1
derby ×1
ejb ×1
ejb-3.0 ×1
installation ×1
javafx-2 ×1
jboss ×1
jersey-2.0 ×1
jetty ×1
jms ×1
jpa ×1
logging ×1
timer ×1
webserver ×1