当我用jdk 7运行Json测试程序时,它说:
Exception in thread "main" javax.json.JsonException: Provider org.glassfish.json.JsonProviderImpl not found
at javax.json.spi.JsonProvider.provider(JsonProvider.java:97)
at javax.json.Json.createArrayBuilder(Json.java:257)"
Run Code Online (Sandbox Code Playgroud)
我在我的项目中包含了"javax.json-api-1.0.jar".
import javax.json.Json;
import javax.json.JsonArray;
import javax.json.JsonArrayBuilder;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
public class JsonExample
{
public static void main(String[] args)
{
List<User> users=getUsers();
// build JSON
JsonArrayBuilder jsonArrayBuilder=Json.createArrayBuilder();
for (User user : users)
{
jsonArrayBuilder.add(
Json.createObjectBuilder()
.add("id",user.getId())
.add("name",user.getName())
.add("join",user.getJoin().getTime()));
}
JsonArray usersJson=jsonArrayBuilder.build();
System.out.println(usersJson.toString());
}
// dummy users
public static List<User> getUsers()
{
List<User> users=new ArrayList<User>(10);
User user=new User();
user.setId(1);
user.setName("Hero");
user.setJoin(new …Run Code Online (Sandbox Code Playgroud) 我有一个基于J2EE的系统,目前正在Apache Tomcat上运行.我们正在讨论将生产服务器迁移到Glassfish服务器.
有人可以分享他们中的任何一个经历吗?
有没有人在现实世界中都有过这方面的经历?他们如何在性能(内存使用,速度等)方面进行比较?稳定性?
JBoss Seam在Glassfish上运行良好吗?
我一直试图让它运行,但我不能.我正在使用Eclipse Galileo,Tomcat 5.5.23并且有几个JSTL.我最近的尝试是使用GlassFish jar文件"jstl-impl-1.2.jar".我把它放在Tomcat的共享库中,将它作为外部jar添加到我的Eclipse项目中并导出它.
任何人都可以告诉我,在哪个文件夹中加载哪些jar以及如何在Eclipse中加载它?
每当我尝试将列表设置为在IN表达式中使用的参数时,我都会得到一个Illegal参数异常.互联网上的各种帖子似乎表明这是可能的,但它肯定不适合我.我正在使用Glassfish V2.1和Toplink.
有没有其他人能够让这个工作,如果是这样的话怎么样?
这是一些示例代码:
List<String> 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();
Run Code Online (Sandbox Code Playgroud)
以及堆栈跟踪的相关部分:
java.lang.IllegalArgumentException: You have attempted to set a value of type class java.util.Arrays$ArrayList for parameter accountIds with expected type of class java.lang.Long from query string 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) at 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) at java.lang.reflect.Method.invoke(Method.java:597) at com.sun.enterprise.security.application.EJBSecurityManager.runMethod(EJBSecurityManager.java:1011) at com.sun.enterprise.security.SecurityUtil.invoke(SecurityUtil.java:175) at com.sun.ejb.containers.BaseContainer.invokeTargetBeanMethod(BaseContainer.java:2920) …
我正在换掉一个用于MySQL的德比数据库.我以前一切都工作但是在我认为正确的配置之后我得到了错误:
引起:javax.resource.ResourceException:类名错误或类路径未设置为:com.mysql.jdbc.jdbc2.optional.MysqlDataSource
控制台的完整错误输出:
Caused by: javax.resource.ResourceException: Class name is wrong or classpath is not set for : com.mysql.jdbc.jdbc2.optional.MysqlDataSource
at com.sun.gjc.common.DataSourceObjectBuilder.getDataSourceObject(DataSourceObjectBuilder.java:292)
at com.sun.gjc.common.DataSourceObjectBuilder.constructDataSourceObject(DataSourceObjectBuilder.java:114)
at com.sun.gjc.spi.ManagedConnectionFactory.getDataSource(ManagedConnectionFactory.java:1292)
at com.sun.gjc.spi.DSManagedConnectionFactory.getDataSource(DSManagedConnectionFactory.java:148)
at com.sun.gjc.spi.DSManagedConnectionFactory.createManagedConnection(DSManagedConnectionFactory.java:101)
at com.sun.enterprise.resource.allocator.LocalTxConnectorAllocator.createResource(LocalTxConnectorAllocator.java:87)
Run Code Online (Sandbox Code Playgroud)
我已经仔细检查了一些名称,连接池和其他资源.我还在两个项目中将MySQL驱动程序.jars添加到glassfish库中.数据库肯定通过eclipse正常工作,因为我能够查看表并在eclipse的数据库上下文中显示资源.所以我知道至少那些司机正在正确地工作.persistence.xml文件看起来也不错.它引用了jdbc/mydatabase jndi引用,并且默认选择JTA作为manament类型.
有人有另一个建议吗?谢谢
我们目前使用Glassfish 3,我真的想使用Java 8.我尝试升级到Glassfish 4,但我在Glassfish 4代码中遇到了两个错误,所以我不得不恢复到Glassfish 3. Glassfish 3是否可以使用Java 8或将我必须升级我的应用程序容器?
我有一个用@Schedule注释的方法,偶尔会被容器调用.
@Schedule(second = "*/5", minute = "*", hour = "*", persistent = false)
public void myTimerMethod() throws Exception {
...
}
Run Code Online (Sandbox Code Playgroud)
问题是在某些条件下,我希望此方法抛出异常以使正在进行的事务回滚.但如果我这样做超过两次,计时器将被清除,不再被调用!
INFO: EJB5119:Expunging timer ['68@@1359143163781@@server@@domain1' 'TimedObject = MyBean' 'Application = My-War' 'BEING_DELIVERED' 'PERIODIC' 'Container ID = 89072805830524936' 'Fri Jan 25 21:49:30 CET 2013' '0' '*/5 # * # * # * # * # * # * # null # null # null # true # myTimerMethod # 0' ] after [2] failed deliveries
Run Code Online (Sandbox Code Playgroud)
我知道我可以使用在domain.xml中配置计时器重新安排
<domains>
...
<configs>
<config> …Run Code Online (Sandbox Code Playgroud) 标题中说明的问题:如何在Eclipse Helios 3.6上安装GlassFish Server Adapter?
我有一个在Glassfish 3.1.2集群上运行的JEE6应用程序.一个@Singleton Bean包含某种(readolny)缓存.用户可以按下GUI中的按钮,用数据库中的(更新的)内容更新缓存.
这在非集群环境中运行良好,但现在我们需要切换到集群.
所以我面临的问题是,当用户按下该更新按钮时,只更新其服务器节点中的Cache Singleton.我的问题是,让其他Singletons(在其他节点中)更新数据的最简单方法是什么?
我知道群集环境中的Singleton问题,但我的问题是针对Glassfish的(因为我希望有一些内置支持),另一个是用"Websphere"进行分类.我的问题是关于JEE6,另一个比JEE6旧.