ok thankyou, i've extended the servlet.

Renat Zubairov wrote:
Another way to extend Application servlet from tapestry and with your
implementation and then just replace ApplicationServlet declaration inside
web.xml with your new class.
Logic is more or less the same.

On 15/11/2007, Jili Lv <[EMAIL PROTECTED]> wrote:
1. Add a filter class :

package com.example;

import java.io.IOException;

import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import org.apache.hivemind.Registry;

public class HivemindRegistryPublishFilter implements Filter {

        private FilterConfig config;

        static public Registry  getRegistry() {
                return _localRegistry.get();
        }

        public void init(FilterConfig config) throws ServletException {
                this.config = config;
        }

        public void destroy() {
        }

        public void doFilter(ServletRequest request, ServletResponse
response, FilterChain chain)
                throws IOException, ServletException {
                try
                {
                        // tapestry 4.1.2 servlet name is xxx.

                        
_localRegistry.set((Registry)config.getServletContext().getAttribute("
org.apache.tapestry.Registry:"
+ "xxx"));
                        chain.doFilter(request, response);
                } finally {
                        _localRegistry.set(null);
                }
        }

        static protected ThreadLocal<Registry>  _localRegistry = new
ThreadLocal<Registry>();
}

2. configure web.xml

        <filter>
                <filter-name>registryFilter</filter-name>
                <filter-class>com.example.HivemindRegistryPublishFilter
</filter-class>
        </filter>
        <filter-mapping>
                <filter-name>registryFilter</filter-name>
                <url-pattern>/*</url-pattern>
        </filter-mapping>

3. now get Registry use
com.example.HivemindRegistryPublishFilter.getRegistry()

this is base on the hivetranse source code
http://hivetranse.sourceforge.net/

2007/11/15, Paul Stanton <[EMAIL PROTECTED]>:
Ok, so the tapestry servlet initializes and stores the hivemind registry
for use within tapestry. My hivemind services and tapestry components
and pages can find each other via injection or context method calls.
That's fine, but now I've got separate servlet in which I need to have
access to my hivemind services. What's the best way to do this?

Thanks, Paul.



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]








---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to