Kenneth,

I made one change to the geronimo-web.xml file that you sent me. Also, I deployed to Geronimo/Tomcat rather than Jetty.

I have attached the edited web.xml and geronimo-web.xml files.

The one thing that I changed was to remove the virtual host line from the geronimo-web.xml. You should be able to set up virtual hosts. I haven't ever done so myself - but there are pages on the wiki that describe how to do it.

Here are the pages for version 2.1.

Jetty:
http://cwiki.apache.org/GMOxDOC21/configuring-virtual-hosts-in-geronimo-jetty.html

Tomcat:
http://cwiki.apache.org/GMOxDOC21/configuring-virtual-hosts-in-geronimo-tomcat.html

I did get some deployment messages:

<snip of geronimo.log>
21:14:51,081 WARN  [JspModuleBuilderExtension] Invalid transformed taglib
org.apache.xmlbeans.XmlException: Invalid deployment descriptor: errors:

jar:file:/opt/geronimo-tomcat6-javaee5-2.1.1/repository/default/pebble/2.3/pebble-2.3.war/WEB-INF/lib/pebble-2.3.jar!/META-INF/pebble.tld:161:7: error: cvc-enumeration-valid: string value 'PAGE' is not a valid enumeration value for variable-scopeType in namespace http://java.sun.com/xml/ns/javaee

Descriptor:
<taglib xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"; version="2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xmlns="http://java.sun.com/xml/ns/javaee";>
  <description>The core Pebble tags.</description>
  <tlib-version>2.0</tlib-version>
  <short-name>pebble</short-name>
  <uri>http://pebble.sourceforge.net/pebble</uri>
  <tag>
<description>Builds a calendar control for use on the blog pages.</description>
    <name>calendar</name>
    <tag-class>net.sourceforge.pebble.web.tagext.CalendarTag</tag-class>
    <body-content>empty</body-content>
  </tag>
  <tag>
<description>Creates a HTML select control based upon a collection of objects.</description>
    <name>select</name>
    <tag-class>net.sourceforge.pebble.web.tagext.SelectTag</tag-class>
    <body-content>empty</body-content>
    <attribute>
      <name>name</name>
      <required>true</required>
      <rtexprvalue>false</rtexprvalue>
    </attribute>
    <attribute>
      <name>size</name>
      <required>false</required>
      <rtexprvalue>false</rtexprvalue>
    </attribute>
    <attribute>
      <name>multiple</name>
      <required>false</required>
      <rtexprvalue>false</rtexprvalue>
    </attribute>
    <attribute>
      <name>label</name>
      <required>false</required>
      <rtexprvalue>false</rtexprvalue>
    </attribute>
    <attribute>
      <name>value</name>
      <required>false</required>
      <rtexprvalue>false</rtexprvalue>
    </attribute>
    <attribute>
      <name>items</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
      <type>java.lang.Object</type>
    </attribute>
    <attribute>
      <name>selected</name>
      <required>false</required>
      <rtexprvalue>true</rtexprvalue>
      <type>java.lang.Object</type>
    </attribute>
  </tag>
  <tag>
<description>Includes the body content only if the current user is a blog admin user.</description>
    <name>isBlogAdmin</name>
    <tag-class>net.sourceforge.pebble.web.tagext.IsBlogAdminTag</tag-class>
    <body-content>JSP</body-content>
  </tag>
  <tag>
<description>Includes the body content only if the current user is a blog admin or blog owner user.</description>
    <name>isBlogAdminOrBlogOwner</name>

<tag-class>net.sourceforge.pebble.web.tagext.IsBlogAdminOrBlogOwnerTag</tag-class>
    <body-content>JSP</body-content>
  </tag>
  <tag>
<description>Includes the body content only if the current user is a blog owner of the current blog.</description>
    <name>isBlogOwner</name>
    <tag-class>net.sourceforge.pebble.web.tagext.IsBlogOwnerTag</tag-class>
    <body-content>JSP</body-content>
  </tag>
  <tag>
<description>Includes the body content only if the current user is a blog publisher of the current blog.</description>
    <name>isBlogPublisher</name>

<tag-class>net.sourceforge.pebble.web.tagext.IsBlogPublisherTag</tag-class>
    <body-content>JSP</body-content>
  </tag>
  <tag>
<description>Includes the body content only if the current user is a blog contributor of the current blog.</description>
    <name>isBlogContributor</name>

<tag-class>net.sourceforge.pebble.web.tagext.IsBlogContributorTag</tag-class>
    <body-content>JSP</body-content>
  </tag>
  <tag>
<description>Includes the body content only if the current user authorised for the current blog.</description>
    <name>isAuthorisedForBlog</name>

<tag-class>net.sourceforge.pebble.web.tagext.IsAuthorisedForBlogTag</tag-class>
    <body-content>JSP</body-content>
  </tag>
  <tag>
<description>Includes the body content only if the current user has been authenticated.</description>
    <name>isAuthenticated</name>

<tag-class>net.sourceforge.pebble.web.tagext.IsAuthenticatedTag</tag-class>
    <body-content>JSP</body-content>
  </tag>
  <tag>
<description>Includes the body content only if the current user has not been authenticated.</description>
    <name>isNotAuthenticated</name>

<tag-class>net.sourceforge.pebble.web.tagext.IsNotAuthenticatedTag</tag-class>
    <body-content>JSP</body-content>
  </tag>
  <tag>
<description>Exposes a variable containing entries from the specified feed.</description>
    <name>getFeed</name>

<tag-class>net.sourceforge.pebble.web.tagext.NewsFeedReaderTag</tag-class>
    <body-content>empty</body-content>
    <variable>
      <name-given>feedEntries</name-given>
      <variable-class>java.util.List</variable-class>
      <scope>PAGE</scope>
    </variable>
    <attribute>
      <name>url</name>
      <required>true</required>
      <rtexprvalue>true</rtexprvalue>
      <type>java.lang.String</type>
    </attribute>
  </tag>
</taglib>

at org.apache.geronimo.deployment.xmlbeans.XmlBeansUtil.validateDD(XmlBeansUtil.java:187) at org.apache.geronimo.jasper.deployment.JspModuleBuilderExtension.convertToTaglibSchema(JspModuleBuilderExtension.java:674) at org.apache.geronimo.jasper.deployment.JspModuleBuilderExtension.parseTldFile(JspModuleBuilderExtension.java:439) at org.apache.geronimo.jasper.deployment.JspModuleBuilderExtension.getListenerClasses(JspModuleBuilderExtension.java:424) at org.apache.geronimo.jasper.deployment.JspModuleBuilderExtension.createJspClassFinder(JspModuleBuilderExtension.java:180) at org.apache.geronimo.jasper.deployment.JspModuleBuilderExtension.addGBeans(JspModuleBuilderExtension.java:149) at org.apache.geronimo.tomcat.deployment.TomcatModuleBuilder.addGBeans(TomcatModuleBuilder.java:497) at org.apache.geronimo.j2ee.deployment.SwitchingModuleBuilder.addGBeans(SwitchingModuleBuilder.java:165) at org.apache.geronimo.j2ee.deployment.EARConfigBuilder.buildConfiguration(EARConfigBuilder.java:647) at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:254) at org.apache.geronimo.deployment.Deployer.deploy(Deployer.java:133)
        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:585)
at org.apache.geronimo.gbean.runtime.ReflectionMethodInvoker.invoke(ReflectionMethodInvoker.java:34) at org.apache.geronimo.gbean.runtime.GBeanOperation.invoke(GBeanOperation.java:124) at org.apache.geronimo.gbean.runtime.GBeanInstance.invoke(GBeanInstance.java:867) at org.apache.geronimo.kernel.basic.BasicKernel.invoke(BasicKernel.java:239) at org.apache.geronimo.deployment.plugin.local.AbstractDeployCommand.doDeploy(AbstractDeployCommand.java:116) at org.apache.geronimo.deployment.plugin.local.DistributeCommand.run(DistributeCommand.java:61)
        at java.lang.Thread.run(Thread.java:595)
21:14:53,134 WARN [DefaultSecurityRealm] *** Creating default user (username/password) 21:14:53,134 WARN [DefaultSecurityRealm] *** Don't forget to delete this user in a production deployment! 21:14:53,337 WARN [AbstractSecurityInterceptor] Could not validate configuration attributes as the MethodDefinitionSource did not return a ConfigAttributeDefinition Iterator

</snip of geronimo.log>

But I was able to access the blog at http://localhost:8080/pebble

Hopefully the virtual hosts entries in the wiki will help you get that last part set up.

Jay

Kenneth P. Turvey wrote:
On Tue, 15 Apr 2008 09:19:19 -0500, Jay D. McHugh wrote:

Kenneth,

This is my real address - So, you can go ahead and send me that war
file.


This may or may not work. I'm reading this mailing list on gmane, an NNTP server. It obfuscates the email addresses of poster. I think it will probably forward my email to you, but I can't say so for a fact. If you don't receive the email within an hour of this posting, please send a quick note to the email address below so I can grab your real email address and try again. Thanks.
<?xml version="1.0" encoding="ISO-8859-1"?>

<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd";>

  <display-name>Pebble</display-name>
  <description>My blog, powered by Pebble</description>

  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
      /WEB-INF/applicationContext-acegi-security.xml
      /WEB-INF/applicationContext-xmlrpc.xml
      /WEB-INF/applicationContext-pebble.xml
    </param-value>
  </context-param>

  <jsp-config>
    <jsp-property-group>
      <url-pattern>*.jsp</url-pattern>
      <scripting-invalid>true</scripting-invalid>
      <include-prelude>/WEB-INF/fragments/prelude.jspf</include-prelude>
      <include-coda>/WEB-INF/fragments/coda.jspf</include-coda>
    </jsp-property-group>

    <jsp-property-group>
      <url-pattern>*.xml</url-pattern>
      <scripting-invalid>true</scripting-invalid>
      <include-prelude>/WEB-INF/xml/prelude.jspf</include-prelude>
      <include-prelude>/WEB-INF/xml/coda.jspf</include-prelude>
    </jsp-property-group>

    <jsp-property-group>
      <url-pattern>*.txt</url-pattern>
      <scripting-invalid>true</scripting-invalid>
    </jsp-property-group>
  </jsp-config>

  <filter>
    <filter-name>BlogLookupFilter</filter-name>
    <filter-class>net.sourceforge.pebble.web.filter.BlogLookupFilter</filter-class>
  </filter>

  <filter>
    <filter-name>TransformingFilter</filter-name>
    <filter-class>net.sourceforge.pebble.web.filter.TransformingFilter</filter-class>
  </filter>

  <filter>
    <filter-name>Acegi Filter Chain Proxy</filter-name>
    <filter-class>org.acegisecurity.util.FilterToBeanProxy</filter-class>
    <init-param>
      <param-name>targetClass</param-name>
      <param-value>org.acegisecurity.util.FilterChainProxy</param-value>
    </init-param>
  </filter>

  <filter>
    <filter-name>PreProcessingFilter</filter-name>
    <filter-class>net.sourceforge.pebble.web.filter.PreProcessingFilter</filter-class>
  </filter>

  <filter>
    <filter-name>LoggingFilter</filter-name>
    <filter-class>net.sourceforge.pebble.web.filter.LoggingFilter</filter-class>
  </filter>

  <filter>
    <filter-name>DispatchingFilter</filter-name>
    <filter-class>net.sourceforge.pebble.web.filter.DispatchingFilter</filter-class>
  </filter>

  <filter>
    <filter-name>GZIPFilter</filter-name>
    <filter-class>net.sourceforge.pebble.web.filter.GZIPFilter</filter-class>
  </filter>

  <filter-mapping>
    <filter-name>GZIPFilter</filter-name>
    <url-pattern>*.html</url-pattern>
    <dispatcher>REQUEST</dispatcher>
  </filter-mapping>

  <filter-mapping>
    <filter-name>GZIPFilter</filter-name>
    <url-pattern>*.js</url-pattern>
    <dispatcher>REQUEST</dispatcher>
  </filter-mapping>

  <filter-mapping>
    <filter-name>GZIPFilter</filter-name>
    <url-pattern>*.css</url-pattern>
    <dispatcher>REQUEST</dispatcher>
  </filter-mapping>

  <filter-mapping>
    <filter-name>BlogLookupFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
  </filter-mapping>

  <filter-mapping>
    <filter-name>TransformingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
  </filter-mapping>

  <filter-mapping>
    <filter-name>Acegi Filter Chain Proxy</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
  </filter-mapping>

  <filter-mapping>
    <filter-name>PreProcessingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
  </filter-mapping>

  <filter-mapping>
    <filter-name>LoggingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
  </filter-mapping>

  <filter-mapping>
    <filter-name>DispatchingFilter</filter-name>
    <url-pattern>/*</url-pattern>
    <dispatcher>REQUEST</dispatcher>
  </filter-mapping>

  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

  <listener>
    <listener-class>net.sourceforge.pebble.web.listener.PebbleContextListener</listener-class>
  </listener>

  <listener>
    <listener-class>net.sourceforge.pebble.aggregator.NewsFeedContextListener</listener-class>
  </listener>

  <servlet>
    <servlet-name>HttpController</servlet-name>
    <servlet-class>net.sourceforge.pebble.web.controller.HttpController</servlet-class>

    <init-param>
      <param-name>actions</param-name>
      <param-value>action.properties</param-value>
    </init-param>

    <init-param>
      <param-name>actionExtension</param-name>
      <param-value>.action</param-value>
    </init-param>
  </servlet>

  <servlet>
    <servlet-name>SecureController</servlet-name>
    <servlet-class>net.sourceforge.pebble.web.controller.HttpController</servlet-class>

    <init-param>
      <param-name>actions</param-name>
      <param-value>secure-action.properties</param-value>
    </init-param>

    <init-param>
      <param-name>actionExtension</param-name>
      <param-value>.secureaction</param-value>
    </init-param>
  </servlet>

  <servlet>
    <servlet-name>XmlRpcController</servlet-name>
    <servlet-class>net.sourceforge.pebble.web.controller.XmlRpcController</servlet-class>
  </servlet>

  <servlet>
    <servlet-name>index.jsp</servlet-name>
    <jsp-file>/index.jsp</jsp-file>
  </servlet>

  <servlet>
    <servlet-name>jcaptcha</servlet-name>
    <servlet-class>net.sourceforge.pebble.confirmation.ImageCaptchaServlet</servlet-class>
    <load-on-startup>0</load-on-startup>
  </servlet>

  <servlet>
    <servlet-name>dwr-invoker</servlet-name>
    <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class>
    <init-param>
      <param-name>debug</param-name>
      <param-value>true</param-value>
    </init-param>
    <init-param>
      <param-name>allowGetForSafariButMakeForgeryEasier</param-name>
      <param-value>true</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
  </servlet>

  <servlet-mapping>
    <servlet-name>dwr-invoker</servlet-name>
    <url-pattern>/dwr/*</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>HttpController</servlet-name>
    <url-pattern>*.action</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>SecureController</servlet-name>
    <url-pattern>*.secureaction</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>XmlRpcController</servlet-name>
    <url-pattern>/xmlrpc/*</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>index.jsp</servlet-name>
    <url-pattern>/index.html</url-pattern>
  </servlet-mapping>

  <servlet-mapping>
    <servlet-name>jcaptcha</servlet-name>
    <url-pattern>/jcaptcha</url-pattern>
  </servlet-mapping>

  <session-config>
    <session-timeout>60</session-timeout>
  </session-config>

  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>

  <!--
  <error-page>
    <error-code>401</error-code>
    <location>/401.action</location>
  </error-page>
  -->

  <error-page>
    <error-code>403</error-code>
    <location>/403.action</location>
  </error-page>

  <error-page>
    <error-code>404</error-code>
    <location>/404.action</location>
  </error-page>

  <error-page>
    <error-code>500</error-code>
    <location>/error.action</location>
  </error-page>

  <error-page>
    <exception-type>java.lang.Exception</exception-type>
    <location>/error.action</location>
  </error-page>

  <!-- uncomment this if you would like to use a JNDI-based JavaMail Session
  <resource-ref>
    <description>
      Resource reference to a factory for javax.mail.Session
      instances that may be used for sending e-mail notifications.
    </description>
    <res-ref-name>mail/Session</res-ref-name>
    <res-type>javax.mail.Session</res-type>
    <res-auth>Container</res-auth>
  </resource-ref>
  -->

</web-app>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://geronimo.apache.org/xml/ns/j2ee/web-1.2";>
    <environment>
        <moduleId>
            <groupId>default</groupId>
    <artifactId>pebble</artifactId>
    <version>2.3</version>
    <type>war</type>
        </moduleId>
    </environment>
    <context-root>/pebble</context-root>
    <!--
    <virtual-host>kt.squeakydolphin.com</virtual-host>
    -->
</web-app>

Reply via email to