无法在WebLogic中部署RESTful应用程序作为JDK 8的一部分来测试JSON-B

时间:2018-06-27 15:50:17

标签: java-8 weblogic

我想将JDK8中的JSON-B实现用作新的本机功能的一部分。 因此,我有一个简单的RESTful,其中包含用于测试JSON-B作为Json的反序列化器的资源 GenericResource.java

@Path("/inbound")
public class GenericResource {

    @Context
    private UriInfo context;

    /**
     * Creates a new instance of GenericResource
     */
    public GenericResource() {
    }

    /**
     * Retrieves representation of an instance of 
       com.test.resource.GenericResource
     * @return an instance of java.lang.String
     */
    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.TEXT_PLAIN)
    public String getText(String arg) {
        //TODO return proper representation object
        //throw new UnsupportedOperationException();
        Jsonb jsonb = JsonbBuilder.create();
        RespTest respFromJson = jsonb.fromJson(arg, RespTest.class);

        return respFromJson.text;
    }
}

然后,有必要在pom.xml中添加一些依赖项(check here),如下所示:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>gt.com.atel</groupId>
<artifactId>JSONBTest</artifactId>
<version>1.0.0</version>
<packaging>war</packaging>

<name>JSONBTest</name>

<properties>
    <endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<dependencies>
    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-api</artifactId>
        <version>8.0</version>
        <type>jar</type>
    </dependency>

    <dependency>
        <groupId>javax.json.bind</groupId>
        <artifactId>javax.json.bind-api</artifactId>
        <version>1.0</version>
    </dependency>

    <!- DEPENDENCIES FOR JSON-B -->
    <dependency>
        <groupId>org.eclipse</groupId>
        <artifactId>yasson</artifactId>
        <version>1.0</version>
    </dependency>

    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.json</artifactId>
        <version>1.1</version>
    </dependency>        

    <dependency>
        <groupId>javax</groupId>
        <artifactId>javaee-web-api</artifactId>
        <version>8.0</version>
        <scope>provided</scope>
    </dependency>
    <!- DEPENDENCIES FOR JSON-B -->
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>2.3.2</version>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
                <compilerArguments>
                    <endorseddirs>${endorsed.dir}</endorseddirs>
                </compilerArguments>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <version>2.1.1</version>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <version>2.1</version>
            <executions>
                <execution>
                    <phase>validate</phase>
                    <goals>
                        <goal>copy</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${endorsed.dir}</outputDirectory>
                        <silent>true</silent>
                        <artifactItems>
                            <artifactItem>
                                <groupId>javax</groupId>
                                <artifactId>javaee-endorsed-api</artifactId>
                                <version>6.0</version>
                                <type>jar</type>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

但是,当我尝试部署这场战争时,WebLogic(版本12.1.3)日志显示此错误:

<Jun 27, 2018 9:40:45 AM CST> <Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID "176586228090851" for task "98". Error is: "weblogic.application.ModuleException: null
null"
weblogic.application.ModuleException: null
null
    at weblogic.servlet.internal.WebAppModule.createModuleException(WebAppModule.java:1824)
    at weblogic.servlet.internal.WebAppModule.init(WebAppModule.java:270)
    at weblogic.servlet.internal.WebAppModule.init(WebAppModule.java:682)
    at weblogic.application.internal.flow.ScopedModuleDriver.init(ScopedModuleDriver.java:162)
    at weblogic.application.internal.ExtensibleModuleWrapper.init(ExtensibleModuleWrapper.java:98)
    Truncated. see log file for complete stacktrace
Caused By: java.lang.IllegalArgumentException
    at com.bea.objectweb.asm.ClassReader.<init>(Unknown Source)
    at com.bea.objectweb.asm.ClassReader.<init>(Unknown Source)
    at weblogic.application.utils.annotation.ClassInfoImpl.<init>(ClassInfoImpl.java:41)
    at weblogic.application.utils.annotation.ClassfinderClassInfos.polulateOneClassInfo(ClassfinderClassInfos.java:240)
    at weblogic.application.utils.annotation.ClassfinderClassInfos.populateClassInfos(ClassfinderClassInfos.java:193)
    Truncated. see log file for complete stacktrace
> 
<Jun 27, 2018 9:40:46 AM CST> <Warning> <Deployer> <BEA-149004> <Failures were detected while initiating redeploy task for application "gt.com.atel_WGTM_0040_war_1.0.0".> 
<Jun 27, 2018 9:40:46 AM CST> <Warning> <Deployer> <BEA-149078> <Stack trace for message 149004
weblogic.application.ModuleException: null
null
    at weblogic.servlet.internal.WebAppModule.createModuleException(WebAppModule.java:1824)
    at weblogic.servlet.internal.WebAppModule.init(WebAppModule.java:270)
    at weblogic.servlet.internal.WebAppModule.init(WebAppModule.java:682)
    at weblogic.application.internal.flow.ScopedModuleDriver.init(ScopedModuleDriver.java:162)
    at weblogic.application.internal.ExtensibleModuleWrapper.init(ExtensibleModuleWrapper.java:98)
    Truncated. see log file for complete stacktrace
Caused By: java.lang.IllegalArgumentException
    at com.bea.objectweb.asm.ClassReader.<init>(Unknown Source)
    at com.bea.objectweb.asm.ClassReader.<init>(Unknown Source)
    at weblogic.application.utils.annotation.ClassInfoImpl.<init>(ClassInfoImpl.java:41)
    at weblogic.application.utils.annotation.ClassfinderClassInfos.polulateOneClassInfo(ClassfinderClassInfos.java:240)
    at weblogic.application.utils.annotation.ClassfinderClassInfos.populateClassInfos(ClassfinderClassInfos.java:193)
    Truncated. see log file for complete stacktrace
> 
<Jun 27, 2018 9:40:46 AM CST> <Warning> <Deployer> <BEA-149124> <Failures were detected while initiating redeploy task for application "gt.com.atel_WGTM_0040_war_1.0.0". Error is: "[Deployer:149164]The domain edit lock is owned by another session in exclusive mode. Therefore, this deployment operation cannot proceed."> 
<Jun 27, 2018 9:40:47 AM CST> <Warning> <Deployer> <BEA-149001> <No application named "gt.com.atel_WGTM_0040_war_1.0.0" exists for operation "redeploy".> 
<Jun 27, 2018 9:40:47 AM CST> <Warning> <Deployer> <BEA-149124> <Failures were detected while initiating redeploy task for application "gt.com.atel_WGTM_0040_war_1.0.0". Error is: "[Deployer:149001]No application named "gt.com.atel_WGTM_0040_war_1.0.0" exists for operation "redeploy"."> 
<Jun 27, 2018 9:40:50 AM CST> <Error> <Deployer> <BEA-149265> <Failure occurred in the execution of deployment request with ID "176590401824723" for task "102". Error is: "weblogic.application.ModuleException: null
null"
weblogic.application.ModuleException: null
null
    at weblogic.servlet.internal.WebAppModule.createModuleException(WebAppModule.java:1824)
    at weblogic.servlet.internal.WebAppModule.init(WebAppModule.java:270)
    at weblogic.servlet.internal.WebAppModule.init(WebAppModule.java:682)
    at weblogic.application.internal.flow.ScopedModuleDriver.init(ScopedModuleDriver.java:162)
    at weblogic.application.internal.ExtensibleModuleWrapper.init(ExtensibleModuleWrapper.java:98)
    Truncated. see log file for complete stacktrace
Caused By: java.lang.IllegalArgumentException
    at com.bea.objectweb.asm.ClassReader.<init>(Unknown Source)
    at com.bea.objectweb.asm.ClassReader.<init>(Unknown Source)
    at weblogic.application.utils.annotation.ClassInfoImpl.<init>(ClassInfoImpl.java:41)
    at weblogic.application.utils.annotation.ClassfinderClassInfos.polulateOneClassInfo(ClassfinderClassInfos.java:240)
    at weblogic.application.utils.annotation.ClassfinderClassInfos.populateClassInfos(ClassfinderClassInfos.java:193)
    Truncated. see log file for complete stacktrace
> 
<Jun 27, 2018 9:40:50 AM CST> <Warning> <Deployer> <BEA-149004> <Failures were detected while initiating deploy task for application "gt.com.atel_WGTM_0040_war_1.0.0".> 
<Jun 27, 2018 9:40:50 AM CST> <Warning> <Deployer> <BEA-149078> <Stack trace for message 149004
weblogic.application.ModuleException: null
null
    at weblogic.servlet.internal.WebAppModule.createModuleException(WebAppModule.java:1824)
    at weblogic.servlet.internal.WebAppModule.init(WebAppModule.java:270)
    at weblogic.servlet.internal.WebAppModule.init(WebAppModule.java:682)
    at weblogic.application.internal.flow.ScopedModuleDriver.init(ScopedModuleDriver.java:162)
    at weblogic.application.internal.ExtensibleModuleWrapper.init(ExtensibleModuleWrapper.java:98)
    Truncated. see log file for complete stacktrace
Caused By: java.lang.IllegalArgumentException
    at com.bea.objectweb.asm.ClassReader.<init>(Unknown Source)
    at com.bea.objectweb.asm.ClassReader.<init>(Unknown Source)
    at weblogic.application.utils.annotation.ClassInfoImpl.<init>(ClassInfoImpl.java:41)
    at weblogic.application.utils.annotation.ClassfinderClassInfos.polulateOneClassInfo(ClassfinderClassInfos.java:240)
    at weblogic.application.utils.annotation.ClassfinderClassInfos.populateClassInfos(ClassfinderClassInfos.java:193)
    Truncated. see log file for complete stacktrace

我使用Java SE简单应用程序测试了相同的代码,并且可以正常工作。 有任何反馈可以解决吗?

谢谢。

0 个答案:

没有答案
相关问题