Uploaded image for project: 'Solder'
  1. Solder
  2. SOLDER-64

Make Solder portable to Resin's CDI implementation

    Details

    • Type: Task
    • Status: Open (View Workflow)
    • Priority: Blocker
    • Resolution: Unresolved
    • Affects Version/s: 3.0.0.Beta1
    • Fix Version/s: Future
    • Component/s: Compliance
    • Labels:
    • Environment:
      Mac OSX 10.6.5 Resin 4.0.13
    • Affects:
      Documentation (Ref Guide, User Guide, etc.), Interactive Demo/Tutorial, Compatibility/Configuration, Release Notes

      Description

      I tried to deploy the Seam Catch JAXRS example to resin and received the following error:

      ┌─[jporter@Lappy] - [~/servers/resin-4.0.13] - [Sat Jan 01, 22:56:40]
      └─<> bin/resin.sh console
      Jan 1, 2011 10:56:44 PM com.caucho.boot.WatchdogChildTask run
      INFO: WatchdogChild[] starting
      Jan 1, 2011 10:56:44 PM com.caucho.boot.WatchdogChildProcess run
      WARNING: Watchdog starting Resin[]
      Resin-4.0.13 (built Tue, 09 Nov 2010 03:48:28 PST)
      Copyright(c) 1998-2010 Caucho Technology. All rights reserved.

      Using Resin(R) Open Source under the GNU Public License (GPL).

      See http://www.caucho.com for information on Resin Professional,
      including caching, clustering, JNI acceleration, and OpenSSL integration.

      Starting Resin on Sat, 01 Jan 2011 22:56:45 -0700 (MST)

      [11-01-01 22:56:46.466]

      {main}
      [11-01-01 22:56:46.467] {main}

      Mac OS X 10.6.5 x86_64
      [11-01-01 22:56:46.467]

      {main} Java(TM) SE Runtime Environment 1.6.0_22-b04-307-10M3261, MacRoman, en
      [11-01-01 22:56:46.468] {main}

      Java HotSpot(TM) 64-Bit Server VM 17.1-b03-307, 64, mixed mode, Apple Inc.
      [11-01-01 22:56:46.468]

      {main}
      [11-01-01 22:56:46.468] {main}

      user.name = jporter
      [11-01-01 22:56:46.517]

      {main}
      [11-01-01 22:56:46.527] {main}

      server listening to localhost:6800
      [11-01-01 22:56:46.539]

      {main}
      [11-01-01 22:56:46.717] {main}


      [11-01-01 22:56:46.718]

      {main} resin.home = /Users/jporter/servers/resin-4.0.13/
      [11-01-01 22:56:46.718] {main}

      resin.root = /Users/jporter/servers/resin-4.0.13/
      [11-01-01 22:56:46.718]

      {main} resin.conf = /Users/jporter/servers/resin-4.0.13/conf/resin.xml
      [11-01-01 22:56:46.718] {main}


      [11-01-01 22:56:46.718]

      {main} server = 127.0.0.1:6800 (app-tier:default)
      [11-01-01 22:56:46.718] {main}

      stage = production
      [11-01-01 22:56:47.315]

      {main} WebApp[production/webapp/default/ROOT] active
      [11-01-01 22:56:47.737] {main}

      WebApp[production/webapp/default/resin-admin] active
      [11-01-01 22:56:48.478]

      {main} WebApp[production/webapp/default/resin-doc] active
      [11-01-01 22:56:48.478] {main}

      Host[production/host/default] active
      [11-01-01 22:56:48.479]

      {main} Server[id=default,cluster=app-tier] active
      [11-01-01 22:56:48.479] {main}


      [11-01-01 22:56:48.479]

      {main} http listening to *:8080
      [11-01-01 22:56:49.275] {main}

      https listening to *:8443
      [11-01-01 22:56:49.276]

      {main}
      [11-01-01 22:56:49.277] {main}

      Resin[id=default] started in 4200ms
      [11-01-01 22:56:52.112]

      {resin-26} Unable to find native library 'resin_os' for com.caucho.loader.ClassEntry. Resin expects to find this library in:
      (Mac OS X) /Users/jporter/servers/resin-4.0.13/libexec64/libresin_os.jnilib
      On Mac OS X, run ./configure; make; make install.
      The JVM exception was: java.lang.UnsatisfiedLinkError: no resin_os in java.library.path

      SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
      SLF4J: Defaulting to no-operation (NOP) logger implementation
      SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
      java.lang.IllegalArgumentException: Invalid bundle interface org.jboss.seam.solder.messages.AnnotatedMessages (implementation not found)
      at org.jboss.logging.Messages.getBundle(Messages.java:97)
      at org.jboss.logging.Messages.getBundle(Messages.java:59)
      at org.jboss.seam.solder.reflection.annotated.AnnotatedTypeBuilder.<init>(AnnotatedTypeBuilder.java:59)
      at org.jboss.seam.config.xml.core.BeanResult.<init>(BeanResult.java:55)
      at org.jboss.seam.config.xml.model.ClassXmlItem.createBeanResult(ClassXmlItem.java:130)
      at org.jboss.seam.config.xml.model.AbstractValueXmlItem.getBeanResult(AbstractValueXmlItem.java:58)
      at org.jboss.seam.config.xml.model.PropertyXmlItem.resolveChildren(PropertyXmlItem.java:147)
      at org.jboss.seam.config.xml.model.ModelBuilder.resolveNode(ModelBuilder.java:191)
      at org.jboss.seam.config.xml.model.ModelBuilder.resolveNode(ModelBuilder.java:187)
      at org.jboss.seam.config.xml.model.ModelBuilder.build(ModelBuilder.java:101)
      at org.jboss.seam.config.xml.bootstrap.XmlConfigExtension.beforeBeanDiscovery(XmlConfigExtension.java:103)
      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.caucho.config.extension.ExtensionManager$ExtensionObserver.notify(ExtensionManager.java:654)
      at com.caucho.config.event.EventManager.fireLocalEvent(EventManager.java:300)
      at com.caucho.config.event.EventManager.fireLocalEvent(EventManager.java:288)
      at com.caucho.config.event.EventManager.fireExtensionEvent(EventManager.java:272)
      at com.caucho.config.extension.ExtensionManager.fireBeforeBeanDiscovery(ExtensionManager.java:463)
      at com.caucho.config.inject.InjectManager.update(InjectManager.java:2911)
      at com.caucho.config.inject.InjectManager.getReferenceFactory(InjectManager.java:1323)
      at com.caucho.config.el.CandiElResolver.getValue(CandiElResolver.java:125)
      at com.caucho.el.StackELResolver.getValue(StackELResolver.java:143)
      at com.caucho.el.IdExpr.getValue(IdExpr.java:110)
      at com.caucho.el.ArrayResolverExpr.getValue(ArrayResolverExpr.java:140)
      at com.caucho.el.PathExpr.getValue(PathExpr.java:142)
      at com.caucho.el.Expr.evalBoolean(Expr.java:232)
      at com.caucho.config.type.BooleanPrimitiveType.valueOf(BooleanPrimitiveType.java:96)
      at com.caucho.config.xml.XmlConfigContext.eval(XmlConfigContext.java:1046)
      at com.caucho.config.xml.XmlConfigContext.configureInlineText(XmlConfigContext.java:541)
      at com.caucho.config.xml.XmlConfigContext.configureChildNode(XmlConfigContext.java:446)
      at com.caucho.config.xml.XmlConfigContext.configureNodeAttributes(XmlConfigContext.java:405)
      at com.caucho.config.xml.XmlConfigContext.configureNode(XmlConfigContext.java:360)
      at com.caucho.config.xml.XmlConfigContext.configureChildBean(XmlConfigContext.java:642)
      at com.caucho.config.xml.XmlConfigContext.configureBeanProperties(XmlConfigContext.java:630)
      at com.caucho.config.xml.XmlConfigContext.configureChildNode(XmlConfigContext.java:451)
      at com.caucho.config.xml.XmlConfigContext.configureAttribute(XmlConfigContext.java:320)
      at com.caucho.config.program.NodeBuilderChildProgram.inject(NodeBuilderChildProgram.java:82)
      at com.caucho.config.program.ContainerProgram.inject(ContainerProgram.java:86)
      at com.caucho.config.program.ConfigProgram.configure(ConfigProgram.java:107)
      at com.caucho.env.deploy.EnvironmentDeployController.configureInstance(EnvironmentDeployController.java:451)
      at com.caucho.env.deploy.EnvironmentDeployController.configureInstance(EnvironmentDeployController.java:57)
      at com.caucho.env.deploy.DeployController.startImpl(DeployController.java:612)
      at com.caucho.env.deploy.StartAutoRedeployAutoStrategy.request(StartAutoRedeployAutoStrategy.java:129)
      at com.caucho.env.deploy.DeployController.request(DeployController.java:531)
      at com.caucho.server.webapp.WebAppVersioningController.instantiateDeployInstance(WebAppVersioningController.java:123)
      at com.caucho.server.webapp.WebAppVersioningController.instantiateDeployInstance(WebAppVersioningController.java:45)
      at com.caucho.env.deploy.DeployController.createDeployInstance(DeployController.java:453)
      at com.caucho.env.deploy.DeployController.startImpl(DeployController.java:594)
      at com.caucho.server.webapp.WebAppVersioningController.startImpl(WebAppVersioningController.java:137)
      at com.caucho.server.webapp.WebAppVersioningController.startImpl(WebAppVersioningController.java:45)
      at com.caucho.env.deploy.StartAutoRedeployAutoStrategy.startOnInit(StartAutoRedeployAutoStrategy.java:77)
      at com.caucho.env.deploy.DeployController.startOnInit(DeployController.java:479)
      at com.caucho.env.deploy.DeployContainer.update(DeployContainer.java:242)
      at com.caucho.env.deploy.ExpandDeployGenerator.update(ExpandDeployGenerator.java:583)
      at com.caucho.env.deploy.ExpandDeployGenerator.updateIfModified(ExpandDeployGenerator.java:529)
      at com.caucho.env.deploy.ExpandDeployGenerator.alarm(ExpandDeployGenerator.java:880)
      at com.caucho.env.deploy.ExpandDeployGenerator.handleAlarm(ExpandDeployGenerator.java:867)
      at com.caucho.util.Alarm.handleAlarm(Alarm.java:443)
      at com.caucho.util.Alarm.run(Alarm.java:415)
      at com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:182)
      at com.caucho.env.thread.ResinThread.run(ResinThread.java:126)
      [11-01-01 22:56:53.108] {resin-26}

      Seam REST Extension starting...
      [11-01-01 22:56:53.136]

      {resin-26} /Users/jporter/servers/resin-4.0.13/conf/resin.xml:106: java.lang.ClassNotFoundException: javax.ws.rs.core.Response$ResponseBuilder in EnvironmentClassLoader[web-app:production/webapp/default/seam-catch-example-jaxrs,NEW]

      104: - Sets max-age for cacheable pages, e.g. static pages.
      105: -->
      106: <resin:if test="${resin.professional}">
      107: <cache-mapping url-pattern="/" max-age="5s"/>
      108: <cache-mapping url-pattern="*.gif" max-age="60s"/>

      java.lang.IllegalArgumentException: Invalid bundle interface org.jboss.seam.solder.messages.AnnotatedMessages (implementation not found)
      at org.jboss.logging.Messages.getBundle(Messages.java:97)
      at org.jboss.logging.Messages.getBundle(Messages.java:59)
      at org.jboss.seam.solder.reflection.annotated.AnnotatedTypeBuilder.<init>(AnnotatedTypeBuilder.java:59)
      at org.jboss.seam.config.xml.core.BeanResult.<init>(BeanResult.java:55)
      at org.jboss.seam.config.xml.model.ClassXmlItem.createBeanResult(ClassXmlItem.java:130)
      at org.jboss.seam.config.xml.model.AbstractValueXmlItem.getBeanResult(AbstractValueXmlItem.java:58)
      at org.jboss.seam.config.xml.model.PropertyXmlItem.resolveChildren(PropertyXmlItem.java:147)
      at org.jboss.seam.config.xml.model.ModelBuilder.resolveNode(ModelBuilder.java:191)
      at org.jboss.seam.config.xml.model.ModelBuilder.resolveNode(ModelBuilder.java:187)
      at org.jboss.seam.config.xml.model.ModelBuilder.build(ModelBuilder.java:101)
      at org.jboss.seam.config.xml.bootstrap.XmlConfigExtension.beforeBeanDiscovery(XmlConfigExtension.java:103)
      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.caucho.config.extension.ExtensionManager$ExtensionObserver.notify(ExtensionManager.java:654)
      at com.caucho.config.event.EventManager.fireLocalEvent(EventManager.java:300)
      at com.caucho.config.event.EventManager.fireLocalEvent(EventManager.java:288)
      at com.caucho.config.event.EventManager.fireExtensionEvent(EventManager.java:272)
      at com.caucho.config.extension.ExtensionManager.fireBeforeBeanDiscovery(ExtensionManager.java:463)
      at com.caucho.config.inject.InjectManager.update(InjectManager.java:2911)
      at com.caucho.config.inject.InjectManager.getReferenceFactory(InjectManager.java:1323)
      at com.caucho.config.el.CandiElResolver.getValue(CandiElResolver.java:125)
      at com.caucho.el.StackELResolver.getValue(StackELResolver.java:143)
      at com.caucho.el.IdExpr.getValue(IdExpr.java:110)
      at com.caucho.el.ArrayResolverExpr.getValue(ArrayResolverExpr.java:140)
      at com.caucho.el.PathExpr.getValue(PathExpr.java:142)
      at com.caucho.el.Expr.evalBoolean(Expr.java:232)
      at com.caucho.config.type.BooleanPrimitiveType.valueOf(BooleanPrimitiveType.java:96)
      at com.caucho.config.xml.XmlConfigContext.eval(XmlConfigContext.java:1046)
      at com.caucho.config.xml.XmlConfigContext.configureInlineText(XmlConfigContext.java:541)
      at com.caucho.config.xml.XmlConfigContext.configureChildNode(XmlConfigContext.java:446)
      at com.caucho.config.xml.XmlConfigContext.configureNodeAttributes(XmlConfigContext.java:405)
      at com.caucho.config.xml.XmlConfigContext.configureNode(XmlConfigContext.java:360)
      at com.caucho.config.xml.XmlConfigContext.configureChildBean(XmlConfigContext.java:642)
      at com.caucho.config.xml.XmlConfigContext.configureBeanProperties(XmlConfigContext.java:630)
      at com.caucho.config.xml.XmlConfigContext.configureChildNode(XmlConfigContext.java:451)
      at com.caucho.config.xml.XmlConfigContext.configureAttribute(XmlConfigContext.java:320)
      at com.caucho.config.program.NodeBuilderChildProgram.inject(NodeBuilderChildProgram.java:82)
      at com.caucho.config.program.ContainerProgram.inject(ContainerProgram.java:86)
      at com.caucho.config.program.ConfigProgram.configure(ConfigProgram.java:107)
      at com.caucho.env.deploy.EnvironmentDeployController.configureInstance(EnvironmentDeployController.java:451)
      at com.caucho.env.deploy.EnvironmentDeployController.configureInstance(EnvironmentDeployController.java:57)
      at com.caucho.env.deploy.DeployController.startImpl(DeployController.java:612)
      at com.caucho.server.webapp.WebAppVersioningController.startImpl(WebAppVersioningController.java:137)
      at com.caucho.server.webapp.WebAppVersioningController.startImpl(WebAppVersioningController.java:45)
      at com.caucho.env.deploy.StartAutoRedeployAutoStrategy.startOnInit(StartAutoRedeployAutoStrategy.java:77)
      at com.caucho.env.deploy.DeployController.startOnInit(DeployController.java:479)
      at com.caucho.env.deploy.DeployContainer.update(DeployContainer.java:242)
      at com.caucho.env.deploy.ExpandDeployGenerator.update(ExpandDeployGenerator.java:583)
      at com.caucho.env.deploy.ExpandDeployGenerator.updateIfModified(ExpandDeployGenerator.java:529)
      at com.caucho.env.deploy.ExpandDeployGenerator.alarm(ExpandDeployGenerator.java:880)
      at com.caucho.env.deploy.ExpandDeployGenerator.handleAlarm(ExpandDeployGenerator.java:867)
      at com.caucho.util.Alarm.handleAlarm(Alarm.java:443)
      at com.caucho.util.Alarm.run(Alarm.java:415)
      at com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:182)
      at com.caucho.env.thread.ResinThread.run(ResinThread.java:126)
      [11-01-01 22:56:53.248] {resin-26}

      Seam REST Extension starting...
      [11-01-01 22:56:53.249]

      {resin-26}

      /Users/jporter/servers/resin-4.0.13/conf/resin.xml:106: java.lang.ClassNotFoundException: javax.ws.rs.core.Response$ResponseBuilder in EnvironmentClassLoader[web-app:production/webapp/default/seam-catch-example-jaxrs,NEW]

      104: - Sets max-age for cacheable pages, e.g. static pages.
      105: -->
      106: <resin:if test="$

      {resin.professional}

      ">
      107: <cache-mapping url-pattern="/" max-age="5s"/>
      108: <cache-mapping url-pattern="*.gif" max-age="60s"/>

      This may just be some missing jars, but whatever it is we need to find out and make sure it's nothing to do with Solder or any of the Seam 3 modules.

        Gliffy Diagrams

          Activity

          Hide
          lightguard Jason Porter added a comment -

          Here's the list of jars in the WEB-INF/lib (built from the glassfish profile)

          jboss-logging-3.0.0.Beta4.jar
          seam-config-xml-3.0.0.Beta2.jar
          seam-servlet-api-3.0.0.Alpha3.jar
          seam-solder-impl-3.0.0.Beta1.jar
          seam-catch-api-3.0.0-SNAPSHOT.jar
          seam-rest-api-3.0.0.Alpha2.jar
          seam-servlet-impl-3.0.0.Alpha3.jar
          seam-catch-impl-3.0.0-SNAPSHOT.jar
          seam-rest-impl-3.0.0.Alpha2.jar
          seam-solder-api-3.0.0.Beta1.jar

          Upon further investigation it looks like we need to include a jaxrs impl and api as they aren't supporting jaxrs in their profile. Still more digging. I'd really like to create an example that uses Servlet (or if a servlet example already includes catch and demonstrates it, that would work as well)

          Show
          lightguard Jason Porter added a comment - Here's the list of jars in the WEB-INF/lib (built from the glassfish profile) jboss-logging-3.0.0.Beta4.jar seam-config-xml-3.0.0.Beta2.jar seam-servlet-api-3.0.0.Alpha3.jar seam-solder-impl-3.0.0.Beta1.jar seam-catch-api-3.0.0-SNAPSHOT.jar seam-rest-api-3.0.0.Alpha2.jar seam-servlet-impl-3.0.0.Alpha3.jar seam-catch-impl-3.0.0-SNAPSHOT.jar seam-rest-impl-3.0.0.Alpha2.jar seam-solder-api-3.0.0.Beta1.jar Upon further investigation it looks like we need to include a jaxrs impl and api as they aren't supporting jaxrs in their profile. Still more digging. I'd really like to create an example that uses Servlet (or if a servlet example already includes catch and demonstrates it, that would work as well)
          Hide
          smigielski Marek Smigielski added a comment -

          I had similar problem on glassfish server.

          >>SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
          >>SLF4J: Defaulting to no-operation (NOP) logger implementation
          >>SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.

          Try adding to your pom.xml file slf4j:

          <!-- Need to use the injectable logger in Weld Extensions -->
          <!--
          Switch scope to provided if server provides slf4j; JBoss AS provides
          it; GlassFish provides it if the Hibernate JPA provider is installed
          -->
          <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-api</artifactId>
          <version>$

          {slf4j.version}</version>
          <scope>compile</scope>
          </dependency>

          <!--
          Remove if server provides slf4j; JBoss AS provides it; GlassFish
          provides it if the Hibernate JPA provider is installed
          -->
          <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-jdk14</artifactId>
          <version${slf4j.version}

          </version>
          <scope>runtime</scope>
          </dependency>

          Show
          smigielski Marek Smigielski added a comment - I had similar problem on glassfish server. >>SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder". >>SLF4J: Defaulting to no-operation (NOP) logger implementation >>SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details. Try adding to your pom.xml file slf4j: <!-- Need to use the injectable logger in Weld Extensions --> <!-- Switch scope to provided if server provides slf4j; JBoss AS provides it; GlassFish provides it if the Hibernate JPA provider is installed --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>$ {slf4j.version}</version> <scope>compile</scope> </dependency> <!-- Remove if server provides slf4j; JBoss AS provides it; GlassFish provides it if the Hibernate JPA provider is installed --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-jdk14</artifactId> <version${slf4j.version} </version> <scope>runtime</scope> </dependency>
          Hide
          smigielski Marek Smigielski added a comment -

          Again. on glassfish with solder 3.0.0.Beta1 I can easily reproduce that problem:

          java.lang.IllegalArgumentException: Invalid bundle interface org.jboss.seam.solder.messages.AnnotatedMessages (implementation not found)
          at org.jboss.logging.Messages.getBundle(Messages.java:97)
          at org.jboss.logging.Messages.getBundle(Messages.java:59)
          at org.jboss.seam.solder.reflection.annotated.AnnotatedTypeBuilder.<init>(AnnotatedTypeBuilder.java:59)
          at org.jboss.seam.config.xml.core.BeanResult.<init>(BeanResult.java:55)

          And it is solved in current SNAPSHOT (just before 3.0.0.Beta2).

          Show
          smigielski Marek Smigielski added a comment - Again. on glassfish with solder 3.0.0.Beta1 I can easily reproduce that problem: java.lang.IllegalArgumentException: Invalid bundle interface org.jboss.seam.solder.messages.AnnotatedMessages (implementation not found) at org.jboss.logging.Messages.getBundle(Messages.java:97) at org.jboss.logging.Messages.getBundle(Messages.java:59) at org.jboss.seam.solder.reflection.annotated.AnnotatedTypeBuilder.<init>(AnnotatedTypeBuilder.java:59) at org.jboss.seam.config.xml.core.BeanResult.<init>(BeanResult.java:55) And it is solved in current SNAPSHOT (just before 3.0.0.Beta2).
          Hide
          lightguard Jason Porter added a comment -

          Thanks Marek, but the missing jar problem I don't think is the real issue. Resin still has the same problem as http://java.net/jira/browse/GLASSFISH-14808. It's an integration problem with the server and the CDI implementation. I'll have an OpenTCK (http://www.opentck.org/) test shortly which will demonstrate this problem.

          Show
          lightguard Jason Porter added a comment - Thanks Marek, but the missing jar problem I don't think is the real issue. Resin still has the same problem as http://java.net/jira/browse/GLASSFISH-14808 . It's an integration problem with the server and the CDI implementation. I'll have an OpenTCK ( http://www.opentck.org/ ) test shortly which will demonstrate this problem.

            People

            • Assignee:
              Unassigned
              Reporter:
              lightguard Jason Porter
            • Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

              • Created:
                Updated:

                Development