Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在Arquillian测试中从类路径加载资源_Java_Jakarta Ee_Testing_Jboss Arquillian - Fatal编程技术网

Java 在Arquillian测试中从类路径加载资源

Java 在Arquillian测试中从类路径加载资源,java,jakarta-ee,testing,jboss-arquillian,Java,Jakarta Ee,Testing,Jboss Arquillian,我试图将一个资源添加到Arquillian收缩包装归档中,并通过类路径加载它。然而,我没有设法使它工作。我尝试使用addAsResource()和AddAsWebInfoResource()。下面的版本是我认为应该有效的,但是没有。有什么解决办法吗 import static org.junit.Assert.assertNotNull; import java.io.InputStream; import org.jboss.arquillian.container.test.api.De

我试图将一个资源添加到Arquillian收缩包装归档中,并通过类路径加载它。然而,我没有设法使它工作。我尝试使用addAsResource()和AddAsWebInfoResource()。下面的版本是我认为应该有效的,但是没有。有什么解决办法吗

import static org.junit.Assert.assertNotNull;

import java.io.InputStream;

import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.asset.StringAsset;
import org.jboss.shrinkwrap.api.spec.WebArchive;
import org.junit.Test;
import org.junit.runner.RunWith;

@RunWith(Arquillian.class)
public class ResourceLoadingTest {

    @Deployment
    public static WebArchive createDeployment() {
        WebArchive archive = ShrinkWrap.create(WebArchive.class)
                .addAsWebInfResource(new StringAsset("Hello World"),
                        "classes/test.properties");
        System.out.println(archive.toString(true));
        return archive;

    }

    @Test
    public void testLoadResource() {
        InputStream stream = Thread.currentThread().getContextClassLoader()
                .getResourceAsStream("/test.properties");
        assertNotNull(stream);
    }
}
控制台输出:

411ad6b1-7705-406f-ba05-d7f46ca14966.war:
/WEB-INF/
/WEB-INF/classes/
/WEB-INF/classes/test.properties

您是否已经尝试过:InputStream=MyClass.class.getResourceAsStream(“classes/test.properties”),其中MyClass是classes目录中的一个类?或者可能是:this.class.getClassLoader().getResourceAsStream(“test.properties”)这确实应该有效,我认为您的问题可能与此问题有关:检查您是否有机会在指向该资源的完整路径(包括服务器位置)中没有空间。