Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Add cxf-rt-management-web dependency to your Maven project (if you don't use Maven as management tool, omit this step and add cxf-rt-management-web library manually):

Code Block
xml
xml
controlstrue
titlepom.xml
linenumberstruexml
<project>

    [...]

    <dependencies>

        [...]

        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-management-web</artifactId>
            <version>2.3.0</version>
        </dependency>

        [...]

    </dependencies>

    [...]

</project>

...

Add new class to your project, LogBrowserApp. Add content from sample below.

Code Block
java
java
controlstrue
titleLogBrowserApp.java
linenumberstruejava
package yourpackage;

import java.util.Collections;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.core.Application;
import javax.ws.rs.ext.Provider;

import org.apache.cxf.jaxrs.provider.AtomEntryProvider;
import org.apache.cxf.jaxrs.provider.AtomFeedProvider;
import org.apache.cxf.management.web.logging.atom.AtomPullServer;
import org.apache.cxf.management.web.logging.logbrowser.bootstrapping.BootstrapStorage;
import org.apache.cxf.management.web.logging.logbrowser.bootstrapping.SimpleAuthenticationFilter;
import org.apache.cxf.management.web.logging.logbrowser.bootstrapping.SimpleXMLSettingsStorage;

@Provider
public class LogBrowserApp extends Application {
	Set<Object> classes = new HashSet<Object>();
	
	static {
        AtomPullServer aps = new AtomPullServer();
        aps.setLoggers("yourpackage:INFO");
        aps.init();

        classes.add(aps);
        classes.add(new AtomFeedProvider());
        classes.add(new AtomEntryProvider());
        classes.add(new BootstrapStorage(new SimpleXMLSettingsStorage()));
        classes.add(new SimpleAuthenticationFilter(new HashMap<String, String>() {
            {
            	// add all required users by specified username and password, for example: put("admin", "admin");
            }
        }));
        classes.add(new BootstrapStorage.StaticFileProvider());
        classes.add(new BootstrapStorage.SettingsProvider());
	}
	
    @Override
    public Set<Class<?>> getClasses() {
        return Collections.emptySet();
    }

    @Override
    public Set<Object> getSingletons() {
        return classes;
    }
}

...

Add new servlet definition to your web.xml file, like in sample below:

Code Block
xml
xml
controlstrue
titleweb.xml
linenumberstruexml
<web-app>

	[...]
	
	<servlet>
		<servlet-name>LogBrowserApp</servlet-name>
		<display-name>LogBrowserApp</display-name>
		<servlet-class>
			org.apache.cxf.jaxrs.servlet.CXFNonSpringJaxrsServlet
		</servlet-class>
		<init-param>
			<param-name>javax.ws.rs.Application</param-name>
			<param-value>yourpackage.LogBrowserApp</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>LogBrowserApp</servlet-name>
		<url-pattern>/log/*</url-pattern>
	</servlet-mapping>
	
	[...]

</web-app>	

...