标签: glassfish-embedded

Embedded GlassFish的官方Maven存储库是什么?

http://maven.glassfish.org/content/groups/glassfish/看起来应该是GlassFish的官方Maven存储库,但它目前只承载了glassfish-embedded-all的3.1.1-b05版本(参见http:/ /maven.glassfish.org/content/groups/glassfish/org/glassfish/extras/glassfish-embedded-all/).

http://download.java.net/maven/glassfish/org/glassfish/extras/与Embedded GlassFish的网站(Embedded Jars)相关联.它看起来不像官方的Maven存储库,但最多可容纳3.1.1-b11(在http://download.java.net/maven/glassfish/org/glassfish/extras/glassfish-embedded-all/).

所以问题是哪个是可靠的存储库来获取嵌入式GlassFish的Maven依赖项.

maven glassfish-embedded

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

嵌入式Glassfish中的嵌入式ActiveMQ(使用maven-embedded-glassfish-plugin)

我试图运行使用maven-embedded-glassfish-plugin嵌入的ActiveMQ glassfish.

我已经单独完成了以下教程,所以我知道基础知识.目标是在一次点击中建立一个设置,避免在svn中使用3pp库.

1 http://www.hascode.com/2011/09/java-ee-6-development-using-the-maven-embedded-glassfish-plugin/

2 http://javadude.wordpress.com/2011/07/21/glassfish-v3-1-running-embedded-activemq-for-jms-part-1/

#2的项目设置从现在开始用作起点,我将尝试合并#1中的步骤

我已经设置了glassfish-resources.xml,希望它能从glassfish管理控制台执行配置教程1.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN" "http://glassfish.org/dtds/glassfish-resources_1_5.dtd">
<resources>
<resource-adapter-config resource-adapter-name="activemq-rar-5.6.0" thread-pool-ids="thread-pool-1">
    <property name="ServerUrl" value="vm://localhost:61616"></property>
    <property name="BrokerXmlConfig" value="broker:(tcp://0.0.0.0:61616)"></property>
</resource-adapter-config>
    <connector-resource enabled="true" jndi-name="amqres"
        object-type="user" pool-name="amqpool">
    </connector-resource>
    <connector-connection-pool
        connection-definition-name="javax.jms.ConnectionFactory"
        fail-all-connections="false" idle-timeout-in-seconds="300"
        is-connection-validation-required="false" max-pool-size="32"
        max-wait-time-in-millis="60000" name="amqpool" pool-resize-quantity="2"
        resource-adapter-name="activemq-rar-5.6.0" steady-pool-size="2" />
    <admin-object-resource res-adapter="activemq-rar-5.6.0"
        res-type="javax.jms.Queue" jndi-name="amqmsg"></admin-object-resource>
</resources>
Run Code Online (Sandbox Code Playgroud)

添加到pom.xml

<dependencies>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-rar</artifactId>
        <version>5.6.0</version>
        <type>rar</type>
        <scope>compile</scope>
    </dependency>
    <dependency>
        <groupId>org.apache.activemq</groupId>
        <artifactId>activemq-core</artifactId>
        <version>5.6.0</version>
        <scope>compile</scope>
    </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

Q1:如何加载glassfish-resources.xml?我应该使用maven admin命令还是将其放在某些META-INF中?编辑:看起来像是在web-inf如果是war和meta-inf如果是ejb-jar

Q2:不完全确定下一步是什么.#1让我将activemq和log4j库复制到GLASSFISH_HOME/glassfish/lib到目前为止我只在pom.xml中添加了依赖项,这里的等价物是什么?

问题3:还需要部署Rar.如何部署多个应用程序?

activemq-classic glassfish maven glassfish-embedded

5
推荐指数
0
解决办法
858
查看次数

使用glassfish-embedded-all和arquillian-glassfish-embedded-3.1工件执行maven安装时出错

我正在尝试maven install在pom 上执行,结果显示:

坟墓:SEC5054:证书已过期

测试执行开始后就会出现此结果.我一直在谷歌搜索这个问题,但我只找到了与真正的glassfish应用服务器相关的解决方案.他们建议从他们所在的文件夹中删除违规证书等等(我看到的页面大多是这样的)或者"unjar"glassfish-embedded来删除认证,然后再次将其打包.

请注意,我正在执行maven install应用程序服务器上的实际部署,而不是实际部署.这就是为什么我不能接受许多博客给出的建议

pom包含以下依赖项:

 <dependencies>
<dependency>
  <groupId>org.glassfish.main.extras</groupId>
  <artifactId>glassfish-embedded-all</artifactId>
  <version>3.1.2.2</version>
  <scope>provided</scope>
</dependency>
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.10</version>
  <scope>test</scope>
  <optional>true</optional>
</dependency>
<dependency>
  <groupId>org.jboss.arquillian.junit</groupId>
  <artifactId>arquillian-junit-container</artifactId>
  <version>1.0.0.Final</version>
  <scope>test</scope>
</dependency>
<dependency>
  <groupId>org.jboss.arquillian.container</groupId>
  <artifactId>arquillian-glassfish-embedded-3.1</artifactId>
  <version>1.0.0.CR3</version>
  <scope>test</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)

glassfish java-ee maven glassfish-embedded jboss-arquillian

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

Java EE 6 - 嵌入式容器EJB测试

这个问题是关于Java EE 6,使用glassfish v3 embedded-all.

我有一个单元测试,使用EJBContainer来测试我的无状态EJB.问题是我在使用JNDI查找EJB(远程)时遇到问题:

setup() {

  ctx = EJBContainer.createEJBContainer().getContext();

}

...

test() {

BookService bookService = (BookService)ctx.lookup("java:global/BookServiceEJB!com.something.service.BookService");

...

}

@Stateless
public class BookServiceEJB implements BookService {
...
}

@Remote
public interface BookService {
...
}
Run Code Online (Sandbox Code Playgroud)

给出例外:

javax.naming.NamingException: Lookup failed for 'java:global/BookServiceEJB!com.something.service.BookService' in SerialContext  [Root exception is javax.naming.NameNotFoundException: BookServiceEJB!com.something.service.BookService not found]

...

caused by: javax.naming.NameNotFoundException: BookServiceEJB!com.something.service.BookService not found
Run Code Online (Sandbox Code Playgroud)

我尝试了几个JNDI资源路径:

例如

java:global/BookServiceEJB

java:global/BookService
Run Code Online (Sandbox Code Playgroud)

甚至:

java:global/BookShelf-1.0-SNAPSHOT/BookServiceEJB
Run Code Online (Sandbox Code Playgroud)

等等...

没有用

没有配置任何xml部署文件,只有persistence.xmlMETA-INF.

测试使用maven surefire: …

jndi java-ee glassfish-embedded java-ee-6 glassfish-3

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

如何在Embedded Glassfish中获取Server.log

我正在使用Embedded Glassfish用Arquillian进行一些In-Container-Tests.现在,当我的测试失败时,我总是从那些混杂着Arquillian特定内容的测试中获得堆栈跟踪.但关于失败测试的真正原因是什么的信息很少.使用常规Glassfish,我可以检查server.log以获取更多信息.不幸的是,Embedded Glassfish似乎没有提供Server.log.我还查看了由Arquillian/Embedded Glassfish创建的临时目录,但它不包含任何日志文件.

如何在Embedded Glassfish中激活日志记录?

顺便说一下,我的pom中有以下依赖项:

<dependencies>
    <dependency>
        <groupId>org.jboss.arquillian.container</groupId>
        <artifactId>arquillian-glassfish-embedded-3</artifactId>
        <version>1.0.0.Alpha4</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.extras</groupId>
        <artifactId>glassfish-embedded-all</artifactId>
        <version>3.1-b06</version>
    </dependency>

    <dependency>
        <groupId>org.jboss.arquillian</groupId>
        <artifactId>arquillian-testng</artifactId>
        <version>1.0.0.Alpha4</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.testng</groupId> 
        <artifactId>testng</artifactId> 
        <version>5.13.1</version> 
        <scope>test</scope> 
    </dependency> 
</dependencies>
Run Code Online (Sandbox Code Playgroud)

glassfish-embedded glassfish-3

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

Maven Embedded Glassfish插件 - 数据源和JDBC驱动程序

我正在尝试按照这种方法为嵌入式glassfish创建数据源.教程和我的代码之间唯一的重要区别是我使用官方maven插件和embedded-glassfish:run目标运行服务器.

pom文件中的JDBC驱动程序存在依赖关系:

<dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>1.3.155</version>
</dependency> 
Run Code Online (Sandbox Code Playgroud)

和我的 glassfish-resources.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN" "http://glassfish.org/dtds/glassfish-resources_1_5.dtd">
<resources>
  <jdbc-resource enabled="true" jndi-name="jdbc/myDatasource" object-type="user" pool-name="connectionPool">
    <description/>
  </jdbc-resource>
  <jdbc-connection-pool datasource-classname="org.h2.jdbcx.JdbcDataSource"  name="connectionPool" res-type="javax.sql.DataSource">
    <property name="URL" value="jdbc:h2:~/Documents/Projetos/DBs/h2/glassfish/glassfish;AUTO_SERVER=TRUE;MVCC=TRUE"/>
    <property name="User" value="sa"/>
    <property name="Password" value=""/>
    <property name="driverClass" value="org.h2.Driver"/>
  </jdbc-connection-pool>
</resources> 
Run Code Online (Sandbox Code Playgroud)

使用本地glassfish服务器运行良好.但嵌入式实例并不幸运:

03/06/2011 19:26:31 com.sun.enterprise.v3.server.ApplicationLifecycle deploy GRAVE:无效资源:jdbc/myDatasource_ pm java.lang.RuntimeException:无效资源: com.sun.enterprise中的jdbc/myDatasource _pm位于org.glassfish.persistence.common.PersistenceHelper.lookupPMResource(PersistenceHelper.java:63)的com.sun.enterprise.connectors.ConnectorRuntime.lookupPMResource(ConnectorRuntime.java:468)中的.connectors.ConnectorRuntime.lookupDataSourceInDAS(ConnectorRuntime.java:539) )org.glassfish.persistence.jpa.ProviderContainerContractInfoBase.lookupDataSource(ProviderContainerContractInfoBase.java:71)at

我很无能......任何人都可以对此有所了解吗?

java-ee maven-plugin glassfish-embedded glassfish-3

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

我该如何开始进行单元测试使用嵌入的GlassFish和Java DB /德比在Java EE JAX-RS应用程序,最好在NetBeans SANS Maven的?

我是比较新的JAX-RS,JPA,GlassFish的,Java DB的,和NetBeans,我想编写单元测试我的代码.[版本号在底部.]但是,我坚持从哪里开始.我已经做了很多搜索,但我还没有清楚地了解如何设置我的代码的嵌入式测试.我正在使用NetBeans,但我的问题很笼统.我希望我能更清楚地形成我的问题,但这是我能做的最好的事情.到目前为止,我已经找到了以下可能的部分(更像是此时的提示).

o我想在没有Maven的情况下进行设置,但这意味着我必须手动安装嵌入式jar.问:我在哪里可以找到它们?

o创建指定GlassFish和Java DB嵌入版本的config xml文件版本(glassfish-resources.xml和persistence.xml).问:但是,您如何告诉NetBeans使用它们进行测试而不是依赖于已安装版本的生产?

我认为persistence.xml看起来像这样(从使用嵌入式德比的hibernate):

  <property name="javax.persistence.jdbc.driver" value="org.apache.derby.jdbc.EmbeddedDriver"/>
  <property name="javax.persistence.jdbc.url" value="jdbc:derby:test"/>
  <property name="javax.persistence.jdbc.user" value="root"/>
  <property name="javax.persistence.jdbc.password" value="root"/>
Run Code Online (Sandbox Code Playgroud)

o创建自定义Glassfish域配置文件(Embedded GlassFish忽略Maven测试资源).问:这应该是什么样的?我从使用NetBeans安装创建的默认domain1中获取了domain.xml,但它有很多内容.

o一旦我的项目可以访问嵌入的文件,并且它被配置为使用它们,我的JUnit线束应该是什么样的?http://jersey.java.net/nonav/documentation/latest/client-api.html#d4e759说:

protected void setUp() throws Exception {
  ...
    glassfish = new GlassFish(BASE_URI.getPort());
    ScatteredWar war = new ScatteredWar(...);
    glassfish.deploy(war);
  ...
Run Code Online (Sandbox Code Playgroud)

但是,我也看到提到的EJBContainer,例如,(从http://docs.oracle.com/javaee/6/tutorial/doc/gkcqz.html):

@BeforeClass
public static void initContainer() throws Exception {
  ec = EJBContainer.createEJBContainer(); ctx = ec.getContext();
}
Run Code Online (Sandbox Code Playgroud)

o我正在使用JPA,所以我需要访问PersistenceContext/EntityManager.目前我通过以下方式查询:

new InitialContext().lookup("java:module/<jax-rs resource name>");
Run Code Online (Sandbox Code Playgroud)

但我也看到了:

    emf = Persistence.createEntityManagerFactory("chapter02PU");
Run Code Online (Sandbox Code Playgroud)

问:什么是正确的方法来掌握这个?

我将衷心感谢您的帮助.

  • 版本:
    • GlassFish …

jax-rs java-ee javadb glassfish-embedded

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

为什么延迟获取不起作用 JPA

我很难理解延迟获取,因为我在书中读到它时我不工作,他们说在延迟获取中 jpa 只会在通过 geters 访问实体时加载实体,所以我创建了一个 Arquillian 项目来测试这个概念但它不起作用。这是我的两个实体

package com.actionbazaar.model;

@Entity
@TableGenerator(
        initialValue = 5,
        name = "PERSON_SEQ",
        table = "PERSON_SEQ_TABLE",
        pkColumnName = "SEQ_NAME",
        pkColumnValue = "PERSON",
        valueColumnName = "SEQ_VALUE")
public class Person implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;

    private String fname;
    private String lname;
    @OneToMany(fetch = FetchType.LAZY, mappedBy = "owner", cascade = CascadeType.PERSIST)
    List<Address> addresses;
    //getters and setters 
}
Run Code Online (Sandbox Code Playgroud)

地址

    @Entity
public class Address implements Serializable {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private int id;
    private …
Run Code Online (Sandbox Code Playgroud)

java hibernate jpa glassfish-embedded jboss-arquillian

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

嵌入式 Glassfish 和 `imqcmd`

我们在测试环境中使用嵌入式 Glassfish 服务器。我们使用org.glassfish.embeddable.CommandRunner界面来执行管理任务(即,我们asadmin使用标准的独立 Glassfish 服务器执行的操作)

例子:

GlassFish glassfish = GlassFishRuntime.bootstrap( bp ).newGlassFish( gfp );
CommandRunner commandRunner = glassfish.getService( CommandRunner.class );
commandRunner.run(
  "create-jms-resource",
  "--restype",
  "javax.jms.Queue",
  "SOME_QUEUE_NAME"
);
Run Code Online (Sandbox Code Playgroud)

现在在命令行上,我可以使用imqcmd. 例如

imqcmd -u admin -passfile ../password.txt update dst -n SOME_QUEUE_NAME -t q -o maxBytesPerMsg=-1 -f
Run Code Online (Sandbox Code Playgroud)

有没有办法通过嵌入式 Glassfish 服务器实现相同的目标?

glassfish glassfish-embedded

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

如何使用嵌入式glassfish测试@RolesAllowed安全EJB3.1

我有一个@RolesAllowed受保护的@Stateless EJB,我正在尝试使用嵌入式GlassFish容器进行JUnit-4测试.我克服的最新障碍是用于持久性单元和安全领域的GlassFish域配置.

Map<String, Object> properties = new HashMap<String, Object>();
properties.put(EJBContainer.MODULES, new File("build/classes"));
properties.put("org.glassfish.ejb.embedded.glassfish.configuration.file", 
     "test-resource/domain.xml");
ec = javax.ejb.embeddable.EJBContainer.createEJBContainer(properties);
Run Code Online (Sandbox Code Playgroud)

嵌入式GlassFish启动,我的应用程序部署,一切似乎按预期工作,直到我用@RolesAllowed注释调用EJB方法.

javax.ejb.AccessLocalException: Client not authorized for this invocation
Run Code Online (Sandbox Code Playgroud)

出于某种原因,我无法弄清楚如何设置容器的角色来通过安全检查.我错过了什么?

junit glassfish-embedded ejb-3.1

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