Uploaded image for project: 'Arquillian'
  1. Arquillian
  2. ARQ-525

Tests fails when META-INF/validation.xml exist

    Details

    • Type: Bug
    • Status: Open (View Workflow)
    • Priority: Critical
    • Resolution: Unresolved
    • Affects Version/s: glassfish_1.0.0.CR1
    • Fix Version/s: None
    • Component/s: GlassFish Containers
    • Labels:
      None
    • Environment:
      arquillian-junit-container:1.0.0.CR2
      arquillian-glassfish-embedded-3.1:1.0.0.CR1
      glassfish-embedded-all:3.1
    • Steps to Reproduce:
      Hide

      1. Create META-INF/validation.xml file in src/main/resources folder
      2. Configue arquillian-glassfish-embedded-3.1
      3. Create an arquillian test
      4. Run test.

      Show
      1. Create META-INF/validation.xml file in src/main/resources folder 2. Configue arquillian-glassfish-embedded-3.1 3. Create an arquillian test 4. Run test.

      Description

      Tests success when no META-INF/validation.xml exist,when META-INF/validation.xml exist,produce the following information:

      2011-7-25 6:49:06 org.jboss.arquillian.container.impl.client.container.ContainerRegistryCreator getActivatedConfiguration
      信息: Could not read active container configuration: null
      2011-7-25 6:49:07 com.sun.enterprise.v3.server.CommonClassLoaderServiceImpl findDerbyClient
      信息: Cannot find javadb client jar file, derby jdbc driver will not be available by default.
      2011-7-25 6:49:07 org.hibernate.validator.util.Version <clinit>
      信息: Hibernate Validator null
      2011-7-25 6:49:07 org.hibernate.validator.engine.resolver.DefaultTraversableResolver detectJPA
      信息: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.
      2011-7-25 6:49:07 org.hibernate.validator.xml.ValidationXmlParser getValidationConfig
      信息: META-INF/validation.xml found.
      2011-7-25 6:49:07 org.hibernate.validator.xml.ValidationXmlParser getValidationConfig
      严重: Error parsing validation.xml: null

        Gliffy Diagrams

          Activity

          Hide
          aslak Aslak Knutsen added a comment -

          Do you have any output from server.log or similar that might shed some more light on why validation.xml: null?

          Show
          aslak Aslak Knutsen added a comment - Do you have any output from server.log or similar that might shed some more light on why validation.xml: null?
          Hide
          includeeasy Liu Jianhong added a comment -

          How to enable embedded glassfish to write log to file?

          I use log4j but it not produce log file:

          <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-log4j12</artifactId>
          <version>$

          {version.slf4j}

          </version>
          </dependency>
          <dependency>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
          <version>1.2.16</version>
          </dependency>

          log4j.rootLogger=DEBUG,CONSOLE,FILE
          log4j.addivity.org.apache=true

          1. \u5E94\u7528\u4E8E\u63A7\u5236\u53F0
            log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
            log4j.appender.CONSOLE.Threshold=INFO
            log4j.appender.CONSOLE.Target=System.out
            log4j.appender.CONSOLE.Encoding=GBK
            log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
            log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

          log4j.appender.FILE=org.apache.log4j.FileAppender
          log4j.appender.FILE.File=C:/log4j/file.log
          log4j.appender.FILE.Append=false
          log4j.appender.FILE.Encoding=GBK
          log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
          log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n

          Show
          includeeasy Liu Jianhong added a comment - How to enable embedded glassfish to write log to file? I use log4j but it not produce log file: <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>$ {version.slf4j} </version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> </dependency> log4j.rootLogger=DEBUG,CONSOLE,FILE log4j.addivity.org.apache=true \u5E94\u7528\u4E8E\u63A7\u5236\u53F0 log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender log4j.appender.CONSOLE.Threshold=INFO log4j.appender.CONSOLE.Target=System.out log4j.appender.CONSOLE.Encoding=GBK log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout log4j.appender.CONSOLE.layout.ConversionPattern= [framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=C:/log4j/file.log log4j.appender.FILE.Append=false log4j.appender.FILE.Encoding=GBK log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.ConversionPattern= [framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n
          Hide
          aslak Aslak Knutsen added a comment -

          GF uses java logging => copy glassfish/domains/domain1/config/logging.properties somewhere, replace INFO with FINE and run your test with the following setting:

          -Djava.util.logging.config.file=/somepath/target/glassfish/config/logging.properties

          Show
          aslak Aslak Knutsen added a comment - GF uses java logging => copy glassfish/domains/domain1/config/logging.properties somewhere, replace INFO with FINE and run your test with the following setting: -Djava.util.logging.config.file=/somepath/target/glassfish/config/logging.properties
          Hide
          includeeasy Liu Jianhong added a comment -

          server.log

          Show
          includeeasy Liu Jianhong added a comment - server.log
          Hide
          includeeasy Liu Jianhong added a comment -

          java.lang.RuntimeException: Could not setup GlassFish Embedded Runtime
          at org.jboss.arquillian.container.glassfish.embedded_3_1.GlassFishContainer.setup(GlassFishContainer.java:134)
          at org.jboss.arquillian.container.glassfish.embedded_3_1.GlassFishContainer.setup(GlassFishContainer.java:62)
          at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$4.perform(ContainerLifecycleController.java:125)
          at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$4.perform(ContainerLifecycleController.java:106)
          at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.forContainer(ContainerLifecycleController.java:186)
          at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.setupContainer(ContainerLifecycleController.java:105)
          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 org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
          at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
          at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
          at org.jboss.arquillian.container.impl.client.ContainerDeploymentContextHandler.createContainerContext(ContainerDeploymentContextHandler.java:57)
          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 org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
          at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
          at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:134)
          at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114)
          at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67)
          at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$1.perform(ContainerLifecycleController.java:68)
          at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$1.perform(ContainerLifecycleController.java:61)
          at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.forEachContainer(ContainerLifecycleController.java:179)
          at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.setupContainers(ContainerLifecycleController.java:60)
          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 org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
          at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
          at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
          at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:134)
          at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114)
          at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67)
          at org.jboss.arquillian.container.test.impl.client.ContainerEventController.execute(ContainerEventController.java:82)
          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 org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
          at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99)
          at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81)
          at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:54)
          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 org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90)
          at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88)
          at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:134)
          at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114)
          at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.beforeSuite(EventTestRunnerAdaptor.java:68)
          at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:76)
          at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
          at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
          at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
          Caused by: org.glassfish.embeddable.GlassFishException: PlainTextActionReporterFAILUREorg.jvnet.hk2.config.TransactionFailure: Unable to parse META-INF/validation.xmlCould not change the attributes: Unable to parse META-INF/validation.xml
          at com.sun.enterprise.glassfish.bootstrap.ConfiguratorImpl.configure(ConfiguratorImpl.java:71)
          at com.sun.enterprise.glassfish.bootstrap.GlassFishImpl.configure(GlassFishImpl.java:71)
          at com.sun.enterprise.glassfish.bootstrap.GlassFishImpl.<init>(GlassFishImpl.java:65)
          at com.sun.enterprise.glassfish.bootstrap.StaticGlassFishRuntime$1.<init>(StaticGlassFishRuntime.java:107)
          at com.sun.enterprise.glassfish.bootstrap.StaticGlassFishRuntime.newGlassFish(StaticGlassFishRuntime.java:107)
          at org.jboss.arquillian.container.glassfish.embedded_3_1.GlassFishContainer.setup(GlassFishContainer.java:130)
          ... 61 more

          Show
          includeeasy Liu Jianhong added a comment - java.lang.RuntimeException: Could not setup GlassFish Embedded Runtime at org.jboss.arquillian.container.glassfish.embedded_3_1.GlassFishContainer.setup(GlassFishContainer.java:134) at org.jboss.arquillian.container.glassfish.embedded_3_1.GlassFishContainer.setup(GlassFishContainer.java:62) at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$4.perform(ContainerLifecycleController.java:125) at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$4.perform(ContainerLifecycleController.java:106) at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.forContainer(ContainerLifecycleController.java:186) at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.setupContainer(ContainerLifecycleController.java:105) 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 org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90) at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) at org.jboss.arquillian.container.impl.client.ContainerDeploymentContextHandler.createContainerContext(ContainerDeploymentContextHandler.java:57) 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 org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:134) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114) at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67) at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$1.perform(ContainerLifecycleController.java:68) at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController$1.perform(ContainerLifecycleController.java:61) at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.forEachContainer(ContainerLifecycleController.java:179) at org.jboss.arquillian.container.impl.client.container.ContainerLifecycleController.setupContainers(ContainerLifecycleController.java:60) 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 org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90) at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:134) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114) at org.jboss.arquillian.core.impl.EventImpl.fire(EventImpl.java:67) at org.jboss.arquillian.container.test.impl.client.ContainerEventController.execute(ContainerEventController.java:82) 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 org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90) at org.jboss.arquillian.core.impl.EventContextImpl.invokeObservers(EventContextImpl.java:99) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:81) at org.jboss.arquillian.test.impl.TestContextHandler.createSuiteContext(TestContextHandler.java:54) 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 org.jboss.arquillian.core.impl.ObserverImpl.invoke(ObserverImpl.java:90) at org.jboss.arquillian.core.impl.EventContextImpl.proceed(EventContextImpl.java:88) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:134) at org.jboss.arquillian.core.impl.ManagerImpl.fire(ManagerImpl.java:114) at org.jboss.arquillian.test.impl.EventTestRunnerAdaptor.beforeSuite(EventTestRunnerAdaptor.java:68) at org.jboss.arquillian.junit.Arquillian.run(Arquillian.java:76) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) Caused by: org.glassfish.embeddable.GlassFishException: PlainTextActionReporterFAILUREorg.jvnet.hk2.config.TransactionFailure: Unable to parse META-INF/validation.xmlCould not change the attributes: Unable to parse META-INF/validation.xml at com.sun.enterprise.glassfish.bootstrap.ConfiguratorImpl.configure(ConfiguratorImpl.java:71) at com.sun.enterprise.glassfish.bootstrap.GlassFishImpl.configure(GlassFishImpl.java:71) at com.sun.enterprise.glassfish.bootstrap.GlassFishImpl.<init>(GlassFishImpl.java:65) at com.sun.enterprise.glassfish.bootstrap.StaticGlassFishRuntime$1.<init>(StaticGlassFishRuntime.java:107) at com.sun.enterprise.glassfish.bootstrap.StaticGlassFishRuntime.newGlassFish(StaticGlassFishRuntime.java:107) at org.jboss.arquillian.container.glassfish.embedded_3_1.GlassFishContainer.setup(GlassFishContainer.java:130) ... 61 more
          Hide
          aslak Aslak Knutsen added a comment -

          oh, it's during GF startup, not deploy.. interesting.

          Show
          aslak Aslak Knutsen added a comment - oh, it's during GF startup, not deploy.. interesting.
          Hide
          vineet.reynolds Vineet Reynolds added a comment - - edited

          The exception does not appear to have anything to do with an incorrect validation.xml; at least that is the case, going by the runtime behavior of embedded Glassfish. In actuality, embedded Glassfish throws a ClassNotFoundException when the enclosed Hibernate Validator attempts to load the "com.sun.xml.bind.v2.ContextFactory" class. Atlhough the ContextFactory class appears to be present in the glassfish-embedded-all-3.1.jar, it is not located and loaded by the javax.xml.bind.ContextFinder class. More analysis is required.

          Show
          vineet.reynolds Vineet Reynolds added a comment - - edited The exception does not appear to have anything to do with an incorrect validation.xml; at least that is the case, going by the runtime behavior of embedded Glassfish. In actuality, embedded Glassfish throws a ClassNotFoundException when the enclosed Hibernate Validator attempts to load the "com.sun.xml.bind.v2.ContextFactory" class. Atlhough the ContextFactory class appears to be present in the glassfish-embedded-all-3.1.jar, it is not located and loaded by the javax.xml.bind.ContextFinder class. More analysis is required.
          Hide
          vineet.reynolds Vineet Reynolds added a comment -

          Raised a ticket in Glassfish JIRA. Will make changes in Arquillian (possibly a documentation update to include the jaxb-osgi dependency from the Glassfish project, in the java.endorsed.dirs system property, only for embedded Glassfish) if suggested in the ticket.

          Show
          vineet.reynolds Vineet Reynolds added a comment - Raised a ticket in Glassfish JIRA . Will make changes in Arquillian (possibly a documentation update to include the jaxb-osgi dependency from the Glassfish project, in the java.endorsed.dirs system property, only for embedded Glassfish) if suggested in the ticket.
          Hide
          vineet.reynolds Vineet Reynolds added a comment -

          Uploading testcase to reproduce the issue. This also demonstrates a possible workaround of including jaxb-osgi in the java.endorsed.dirs system property when launching surefire tests.

          Show
          vineet.reynolds Vineet Reynolds added a comment - Uploading testcase to reproduce the issue. This also demonstrates a possible workaround of including jaxb-osgi in the java.endorsed.dirs system property when launching surefire tests.

            People

            • Assignee:
              vineet.reynolds Vineet Reynolds
              Reporter:
              includeeasy Liu Jianhong
            • Votes:
              2 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:

                Development