Hi All,
I am newbie to JBoss. Got most of the things working except
for the Tomcat and JBoss integration. I am on Windows NT
4.0 with SP 6.
My JBoss version is 2.2.2 and my Tomcat is 3.2.3. Below is
the error I am getting
[EmbeddedTomcatSX] Starting
[EmbeddedTomcatSX] Starting EmbeddedTomcatSX....
[Service Control] Could not start
DefaultDomain:service=EmbeddedTomcatSX
[Service Control] java.lang.NoClassDefFoundError:
org/apache/tomcat/util/xml/Xml
Action
[Service Control] at
org.jboss.tomcat.EmbeddedTomcatServiceSX.startService
(EmbeddedTomcatServiceSX.java:80)
[Service Control] at
org.jboss.util.ServiceMBeanSupport.start(ServiceMBean
Support.java:93)
[Service Control] at
java.lang.reflect.Method.invoke(Native Method)
[Service Control] at
com.sun.management.jmx.MBeanServerImpl.invoke(MBeanSe
rverImpl.java:1628)
[Service Control] at
com.sun.management.jmx.MBeanServerImpl.invoke(MBeanSe
rverImpl.java:1523)
[Service Control] at
org.jboss.util.ServiceControl.start(ServiceControl.ja
va:97)
[Service Control] at
java.lang.reflect.Method.invoke(Native Method)
[Service Control] at
com.sun.management.jmx.MBeanServerImpl.invoke(MBeanSe
rverImpl.java:1628)
[Service Control] at
com.sun.management.jmx.MBeanServerImpl.invoke(MBeanSe
rverImpl.java:1523)
[Service Control] at
org.jboss.Main.<init>(Main.java:217)
[Service Control] at
org.jboss.Main$1.run(Main.java:121)
[Service Control] at
java.security.AccessController.doPrivileged(Native Me
thod)
[Service Control] at
org.jboss.Main.main(Main.java:117)
I am also attaching the jboss.conf, jboss.jcml and the
server.xml of tomcat. I would really appreciate if someone
could help me in this regard.
Thanks,
Shiva.
__________________________________________________
Do You Yahoo!?
Make international calls for as low as $.04/minute with Yahoo! Messenger
http://phonecard.yahoo.com/
jboss.conf
<?xml version="1.0" encoding="UTF-8"?>
<!-- This is where you can add and configure your MBeans
ATTENTION: The order of the listing here is the same order as
the MBeans are loaded. Therefore if a MBean depends on another
MBean to be loaded and started it has to be listed after all
the MBeans it depends on.
-->
<server>
<!-- Classloading -->
<mbean code="org.jboss.web.WebService" name="DefaultDomain:service=Webserver">
<attribute name="Port">8083</attribute>
</mbean>
<!-- JNDI -->
<mbean code="org.jboss.naming.NamingService" name="DefaultDomain:service=Naming">
<attribute name="Port">1099</attribute>
</mbean>
<mbean code="org.jboss.naming.JNDIView" name="DefaultDomain:service=JNDIView" />
<!-- Transactions -->
<mbean code="org.jboss.tm.TransactionManagerService" name="DefaultDomain:service=TransactionManager">
<attribute name="TransactionTimeout">300</attribute>
</mbean>
<!-- Security -->
<!-- Uncomment to enable the sample SRPVerifierStore service
<mbean code="org.jboss.security.srp.SRPVerifierStoreService" name="Security:name=SRPVerifierStoreService">
<attribute name="JndiName">SRPDefaultVerifierSource</attribute>
<attribute name="StoreFile">SRPVerifierStore.ser</attribute>
</mbean>
-->
<!-- Uncomment to enable the SRP login service
<mbean code="org.jboss.security.srp.SRPService" name="service:name=SRPService">
<attribute name="JndiName">SRPServerInterface</attribute>
<attribute name="VerifierSourceJndiName">SRPDefaultVerifierSource</attribute>
<attribute name="AuthenticationCacheJndiName">SRPAuthenticationCache</attribute>
<attribute name="ServerPort">10099</attribute>
</mbean>
-->
<!-- JAAS security manager and realm mapping -->
<mbean code="org.jboss.security.plugins.JaasSecurityManagerService" name="Security:name=JaasSecurityManager">
<attribute name="SecurityManagerClassName">org.jboss.security.plugins.JaasSecurityManager</attribute>
</mbean>
<!-- Uncomment to enable the XML implementation of the JAAS policy
<mbean code="org.jboss.security.plugins.SecurityPolicyService" name="Security:name=SecurityPolicyService">
<attribute name="JndiName">DefaultSecurityPolicy</attribute>
<attribute name="PolicyFile">sample_policy.xml</attribute>
</mbean>
-->
<!-- JDBC -->
<mbean code="org.jboss.jdbc.JdbcProvider" name="DefaultDomain:service=JdbcProvider">
<attribute name="Drivers">oracle.jdbc.driver.OracleDriver</attribute>
</mbean>
<mbean code="org.jboss.jdbc.XADataSourceLoader" name="DefaultDomain:service=XADataSource,name=OracleDB">
<attribute name="PoolName">OraclePool</attribute>
<attribute name="DataSourceClass">org.opentools.minerva.jdbc.xa.wrapper.XADataSourceImpl</attribute>
<attribute name="URL">jdbc:oracle:thin:@localhost:1521:ORCL</attribute>
<attribute name="JDBCUser">scott</attribute>
<attribute name="Password">tiger</attribute>
</mbean>
<!-- J2EE deployment -->
<mbean code="org.jboss.ejb.ContainerFactory" name=":service=ContainerFactory">
<attribute name="VerifyDeployments">true</attribute>
<attribute name="MetricsEnabled">false</attribute>
<attribute name="VerifierVerbose">true</attribute>
<attribute name="BeanCacheJMSMonitoringEnabled">false</attribute>
</mbean>
<!-- Uncomment to add embedded tomcat service -->
<mbean code="org.jboss.tomcat.EmbeddedTomcatServiceSX" name="DefaultDomain:service=EmbeddedTomcatSX" />
<!-- Uncomment and set file URL to add Jetty service (you can set config more than once)
<mbean code="org.jboss.jetty.JettyService" name="DefaultDomain:service=Jetty">
<attribute name="Configuration">file URL to jetty.xml e.g. file:/usr/local/jboss/dist/conf/default/jetty.xml</attribute>
</mbean>
-->
<!-- For Message Driven Beans -->
<mbean code="org.jbossmq.server.JBossMQService" name="DefaultDomain:service=JBossMQ" />
<mbean code="org.jboss.jms.jndi.JMSProviderLoader" name=":service=JMSProviderLoader,name=JBossMQProvider">
<attribute name="ProviderName">DefaultJMSProvider</attribute>
<attribute name="ProviderAdapterClass">org.jboss.jms.jndi.JBossMQProvider</attribute>
</mbean>
<mbean code="org.jboss.jms.asf.ServerSessionPoolLoader" name=":service=ServerSessionPoolMBean,name=StdJMSPool">
<attribute name="PoolName">StdJMSPool</attribute>
<attribute name="PoolFactoryClass">org.jboss.jms.asf.StdServerSessionPoolFactory</attribute>
</mbean>
<!-- Make sure you change EmbeddedTomcat to Jetty if you are using Jetty -->
<mbean code="org.jboss.deployment.J2eeDeployer" name="J2EE:service=J2eeDeployer">
<attribute name="DeployerName">Default</attribute>
<attribute name="JarDeployerName">:service=ContainerFactory</attribute>
<attribute name="WarDeployerName">:service=EmbeddedTomcat</attribute>
</mbean>
<mbean code="org.jboss.ejb.AutoDeployer" name="EJB:service=AutoDeployer">
<attribute name="Deployer">J2EE:service=J2eeDeployer</attribute>
<attribute name="URLs">../deploy</attribute>
</mbean>
<!-- J2EE connector architecture -->
<mbean code="org.jboss.resource.RARDeployer" name="JCA:service=RARDeployer">
</mbean>
<!-- Minerva no transaction connection manager factory.
Use this for resource adapters that don't support
transactions. -->
<mbean code="org.jboss.resource.ConnectionManagerFactoryLoader"
name="JCA:service=ConnectionManagerFactoryLoader,name=MinervaNoTransCMFactory">
<attribute name="FactoryName">MinervaNoTransCMFactory</attribute>
<attribute name="FactoryClass">org.opentools.minerva.connector.jboss.MinervaNoTransCMFactory</attribute>
<attribute name="Properties"></attribute>
</mbean>
<!-- Minerva local transaction connection manager factory.
Use this for resource adapters that support "local"
transactions. -->
<mbean code="org.jboss.resource.ConnectionManagerFactoryLoader"
name="JCA:service=ConnectionManagerFactoryLoader,name=MinervaSharedLocalCMFactory">
<attribute name="FactoryName">MinervaSharedLocalCMFactory</attribute>
<attribute name="FactoryClass">
org.opentools.minerva.connector.jboss.MinervaSharedLocalCMFactory
</attribute>
<attribute name="Properties"></attribute>
</mbean>
<!-- Minerva XA transaction connection manager factory
Use this for resource adapters that support "xa"
transactions. -->
<mbean code="org.jboss.resource.ConnectionManagerFactoryLoader"
name="JCA:service=ConnectionManagerFactoryLoader,name=MinervaXACMFactory">
<attribute name="FactoryName">MinervaXACMFactory</attribute>
<attribute name="FactoryClass">
org.opentools.minerva.connector.jboss.MinervaXACMFactory
</attribute>
<attribute name="Properties"></attribute>
</mbean>
<!-- Example connection factory for the example "Black Box" resource
adapter. This points at the same database as DefaultDS. -->
<mbean code="org.jboss.resource.ConnectionFactoryLoader"
name="JCA:service=ConnectionFactoryLoader,name=BlackBoxDS">
<attribute name="FactoryName">BlackBoxDS</attribute>
<attribute name="RARDeployerName">JCA:service=RARDeployer</attribute>
<attribute name="ResourceAdapterName">Black Box LocalTx Adapter</attribute>
<attribute name="Properties">
ConnectionURL=jdbc:HypersonicSQL:hsql://localhost:1476
</attribute>
<attribute name="ConnectionManagerFactoryName">
MinervaSharedLocalCMFactory
</attribute>
<!-- See the documentation for the specific connection manager
implementation you are using for the properties you can set -->
<attribute name="ConnectionManagerProperties">
# Pool type - uncomment to force, otherwise it is the default
#PoolConfiguration=per-factory
# Connection pooling properties - see
# org.opentools.minerva.pool.PoolParameters
MinSize=0
MaxSize=10
Blocking=true
GCEnabled=false
IdleTimeoutEnabled=false
InvalidateOnError=false
TrackLastUsed=false
GCIntervalMillis=120000
GCMinIdleMillis=1200000
IdleTimeoutMillis=1800000
MaxIdleTimeoutPercent=1.0
</attribute>
<!-- Principal mapping configuration -->
<attribute name="PrincipalMappingClass">
org.jboss.resource.security.ManyToOnePrincipalMapping
</attribute>
<attribute name="PrincipalMappingProperties">
userName=sa
password=
</attribute>
</mbean>
<!-- This is an example of using a resource adapter that supports XA
transactions. The Black Box XA resource adapter requires an
XADataSource to be in JNDI somewhere. JBoss doesn't include a
database with an XA-compliant JDBC driver, so this will need to
be configured to use whatever XADataSource implementation you
have.
<mbean code="org.jboss.jdbc.RawXADataSourceLoader"
name="DefaultDomain:service=RawXADataSourceLoader,name=BlackBoxXADS">
<attribute name="PoolName">BlackBoxXADS</attribute>
<attribute name="DataSourceClass">
Put your XADataSource implementation class here
</attribute>
<attribute name="Properties"></attribute>
</mbean>
<mbean code="org.jboss.resource.ConnectionFactoryLoader"
name="JCA:service=ConnectionFactoryLoader,name=XABlackBoxDS">
<attribute name="FactoryName">XABlackBoxDS</attribute>
<attribute name="RARDeployerName">JCA:service=RARDeployer</attribute>
<attribute name="ResourceAdapterName">Black Box XA Adapter</attribute>
<attribute name="Properties">
XADataSourceName=java:/BlackBoxXADS
</attribute>
<attribute name="ConnectionManagerFactoryName">
MinervaXACMFactory
</attribute>
<attribute name="ConnectionManagerProperties">
# Pool type - uncomment to force, otherwise it is the default
#PoolConfiguration=per-factory
# Connection pooling properties - see
# org.opentools.minerva.pool.PoolParameters
MinSize=0
MaxSize=10
Blocking=true
GCEnabled=false
IdleTimeoutEnabled=false
InvalidateOnError=false
TrackLastUsed=false
GCIntervalMillis=120000
GCMinIdleMillis=1200000
IdleTimeoutMillis=1800000
MaxIdleTimeoutPercent=1.0
</attribute>
<attribute name="PrincipalMappingClass">
org.jboss.resource.security.ManyToOnePrincipalMapping
</attribute>
<attribute name="PrincipalMappingProperties">
userName=sa
password=
</attribute>
</mbean>
-->
<!-- JMX adaptors -->
<mbean code="org.jboss.jmx.server.JMXAdaptorService" name="Adaptor:name=RMI" />
<mbean code="org.jboss.jmx.server.RMIConnectorService" name="Connector:name=RMI" />
<mbean code="com.sun.jdmk.comm.HtmlAdaptorServer" name="Adaptor:name=html">
<attribute name="MaxActiveClientCount">10</attribute>
<attribute name="Parser" />
<attribute name="Port">8082</attribute>
</mbean>
<!-- Mail Connection Factory -->
<mbean code="org.jboss.mail.MailService" name=":service=Mail">
<attribute name="JNDIName">Mail</attribute>
<attribute name="ConfigurationFile">mail.properties</attribute>
<attribute name="User">user_id</attribute>
<attribute name="Password">password</attribute>
</mbean>
<!-- Uncomment to enable JMX monitoring of the bean cache
<mbean code="org.jboss.monitor.BeanCacheMonitor" name="Monitor:name=BeanCacheMonitor"/>
-->
<!-- Add your custom MBeans here -->
</server>
<?xml version="1.0" encoding="ISO-8859-1"?>
<Server>
<!-- Debug low-level events in XmlMapper startup
<xmlmapper:debug level="0" />
-->
<!--
Logging:
Logging in Tomcat is quite flexible; we can either have a log
file per module (example: ContextManager) or we can have one
for Servlets and one for Jasper, or we can just have one
tomcat.log for both Servlet and Jasper. Right now there are
three standard log streams, "tc_log", "servlet_log", and
"JASPER_LOG".
Path:
The file to which to output this log, relative to
TOMCAT_HOME. If you omit a "path" value, then stderr or
stdout will be used.
Verbosity:
Threshold for which types of messages are displayed in the
log. Levels are inclusive; that is, "WARNING" level displays
any log message marked as warning, error, or fatal. Default
level is WARNING.
verbosityLevel values can be:
FATAL
ERROR
WARNING
INFORMATION
DEBUG
Timestamps:
By default, logs print a timestamp in the form "yyyy-MM-dd
hh:mm:ss" in front of each message. To disable timestamps
completely, set 'timestamp="no"'. To use the raw
msec-since-epoch, which is more efficient, set
'timestampFormat="msec"'. If you want a custom format, you
can use 'timestampFormat="hh:mm:ss"' following the syntax of
java.text.SimpleDateFormat (see Javadoc API). For a
production environment, we recommend turning timestamps off,
or setting the format to "msec".
Custom Output:
"Custom" means "normal looking". "Non-custom" means
"surrounded with funny xml tags". In preparation for
possibly disposing of "custom" altogether, now the default is
'custom="yes"' (i.e. no tags)
Per-component Debugging:
Some components accept a "debug" attribute. This further
enhances log output. If you set the "debug" level for a
component, it may output extra debugging information.
-->
<!-- if you don't want messages on screen, add the attribute
path="logs/tomcat.log"
to the Logger element below
-->
<Logger name="tc_log"
verbosityLevel = "INFORMATION"
/>
<Logger name="servlet_log"
path="logs/servlet.log"
/>
<Logger name="JASPER_LOG"
path="logs/jasper.log"
verbosityLevel = "INFORMATION" />
<!-- You can add a "home" attribute to represent the "base" for
all relative paths. If none is set, the TOMCAT_HOME property
will be used, and if not set "." will be used.
webapps/, work/ and logs/ will be relative to this ( unless
set explicitely to absolute paths ).
You can also specify a "randomClass" attribute, which determines
a subclass of java.util.Random will be used for generating session IDs.
By default this is "java.security.SecureRandom".
Specifying "java.util.Random" will speed up Tomcat startup,
but it will cause sessions to be less secure.
You can specify the "showDebugInfo" attribute to control whether
debugging information is displayed in Tomcat's default responses.
This debugging information includes:
1. Stack traces for exceptions
2. Request URI's that cause status codes >= 400
The default is "true", so you must specify "false" to prevent
the debug information from appearing. Since the debugging
information reveals internal details about what Tomcat is serving,
set showDebugInfo="false" if you wish increased security.
-->
<ContextManager debug="0" workDir="work" showDebugInfo="true" >
<!-- ==================== Interceptors ==================== -->
<!--
ContextInterceptor className="org.apache.tomcat.context.LogEvents"
-->
<ContextInterceptor className="org.apache.tomcat.context.AutoSetup" />
<ContextInterceptor
className="org.apache.tomcat.context.WebXmlReader" />
<!-- Uncomment out if you have JDK1.2 and want to use policy
<ContextInterceptor
className="org.apache.tomcat.context.PolicyInterceptor" />
-->
<ContextInterceptor
className="org.apache.tomcat.context.LoaderInterceptor" />
<ContextInterceptor
className="org.apache.tomcat.context.DefaultCMSetter" />
<ContextInterceptor
className="org.apache.tomcat.context.WorkDirInterceptor" />
<!-- JBoss, Setup the class loader heirarchy to enable in VM call optimization.
Add after the org.apache.tomcat.context.WorkDirInterceptor ContextInterceptor
-->
<ContextInterceptor className="org.jboss.tomcat.ContextClassLoaderInterceptor" />
<!-- JBoss, Add the jboss-web.xml parser. Add after the org.jboss.tomcat.ContextClassLoaderInterceptor
ContextInterceptor
-->
<ContextInterceptor className="org.jboss.tomcat.naming.JbossWebXmlReader" />
<!-- JBoss, Set the request thread classloader. Add before the org.apache.tomcat.request.SessionInterceptor
RequestInterceptor
-->
<RequestInterceptor className="org.apache.tomcat.request.Jdk12Interceptor" />
<!-- Request processing -->
<!-- Session interceptor will extract the session id from cookies and
deal with URL rewriting ( by fixing the URL ). If you wish to
suppress the use of cookies for session identifiers, change the
"noCookies" attribute to "true"
-->
<RequestInterceptor
className="org.apache.tomcat.request.SessionInterceptor"
noCookies="false" />
<!-- Find the container ( context and prefix/extension map )
for a request.
-->
<RequestInterceptor
className="org.apache.tomcat.request.SimpleMapper1"
debug="0" />
<!-- Non-standard invoker, for backward compat. ( /servlet/* )
You can modify the prefix that is matched by adjusting the
"prefix" parameter below. Be sure your modified pattern
starts and ends with a slash.
NOTE: This prefix applies to *all* web applications that
are running in this instance of Tomcat.
-->
<RequestInterceptor
className="org.apache.tomcat.request.InvokerInterceptor"
debug="0" prefix="/servlet/" />
<!-- "default" handler - static files and dirs. Set the
"suppress" property to "true" to suppress directory listings
when no welcome file is present.
NOTE: This setting applies to *all* web applications that
are running in this instance of Tomcat.
-->
<RequestInterceptor
className="org.apache.tomcat.request.StaticInterceptor"
debug="0" suppress="false" />
<!-- Plug a session manager. You can plug in more advanced session
modules.
-->
<RequestInterceptor
className="org.apache.tomcat.session.StandardSessionInterceptor" />
<!-- Check if the request requires an authenticated role.
-->
<RequestInterceptor
className="org.apache.tomcat.request.AccessInterceptor"
debug="0" />
<!-- Check permissions using the simple xml file. You can
plug more advanced authentication modules.
-->
<RequestInterceptor
className="org.apache.tomcat.request.SimpleRealm"
debug="0" />
<!-- JBoss, Map the current web user to the SecurityAssociation principal. Add
after the org.apache.tomcat.request.SimpleRealm RequestInterceptor
-->
<RequestInterceptor className="org.jboss.tomcat.security.JbossRealm" />
<!-- UnComment the following and comment out the
above to get a JDBC realm.
Other options for driverName:
driverName="oracle.jdbc.driver.OracleDriver"
connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL"
connectionName="scott"
connectionPassword="tiger"
driverName="org.gjt.mm.mysql.Driver"
connectionURL="jdbc:mysql://localhost/authority"
connectionName="test"
connectionPassword="test"
"connectionName" and "connectionPassword" are optional.
-->
<!--
<RequestInterceptor
className="org.apache.tomcat.request.JDBCRealm"
debug="99"
driverName="sun.jdbc.odbc.JdbcOdbcDriver"
connectionURL="jdbc:odbc:TOMCAT"
userTable="users"
userNameCol="user_name"
userCredCol="user_pass"
userRoleTable="user_roles"
roleNameCol="role_name" />
-->
<!-- Loaded last since JSP's that load-on-startup use request handling -->
<ContextInterceptor
className="org.apache.tomcat.context.LoadOnStartupInterceptor" />
<!-- ==================== Connectors ==================== -->
<!-- Normal HTTP -->
<Connector className="org.apache.tomcat.service.PoolTcpConnector">
<Parameter name="handler"
value="org.apache.tomcat.service.http.HttpConnectionHandler"/>
<Parameter name="port"
value="8080"/>
</Connector>
<!--
Uncomment this for SSL support.
You _need_ to set up a server certificate if you want this
to work, and you need JSSE.
1. Add JSSE jars to CLASSPATH
2. Edit java.home/jre/lib/security/java.security
Add:
security.provider.2=com.sun.net.ssl.internal.ssl.Provider
3. Do: keytool -genkey -alias tomcat -keyalg RSA
RSA is essential to work with Netscape and IIS.
Use "changeit" as password. ( or add keypass attribute )
You don't need to sign the certificate.
You can set parameter keystore and keypass if you want
to change the default ( user.home/.keystore with changeit )
-->
<!--
<Connector className="org.apache.tomcat.service.PoolTcpConnector">
<Parameter name="handler"
value="org.apache.tomcat.service.http.HttpConnectionHandler"/>
<Parameter name="port"
value="8443"/>
<Parameter name="socketFactory"
value="org.apache.tomcat.net.SSLSocketFactory" />
</Connector>
-->
<!-- Apache AJP12 support. This is also used to shut down tomcat.
-->
<Connector className="org.apache.tomcat.service.PoolTcpConnector">
<Parameter name="handler"
value="org.apache.tomcat.service.connector.Ajp12ConnectionHandler"/>
<Parameter name="port" value="8007"/>
</Connector>
<!-- ==================== Special webapps ==================== -->
<!-- You don't need this if you place your app in webapps/
and use defaults.
For security you'll also need to edit tomcat.policy
Defaults are: debug=0, reloadable=true, trusted=false
(trusted allows you to access tomcat internal objects
with FacadeManager ), crossContext=true (allows you to
access other contexts via ServletContext.getContext())
If security manager is enabled, you'll have read perms.
in the webapps dir and read/write in the workdir.
-->
<Context path="/examples"
docBase="webapps/examples"
crossContext="false"
debug="0"
reloadable="true" >
</Context>
<!-- Admin context will use tomcat.core to add/remove/get info about
the webapplications and tomcat internals.
By default it is not trusted - i.e. it is not allowed access to
tomcat internals, only informations that are available to all
servlets are visible.
If you change this to true, make sure you set a password.
-->
<Context path="/admin"
docBase="webapps/admin"
crossContext="true"
debug="0"
reloadable="true"
trusted="false" >
</Context>
<!-- Virtual host example -
In "127.0.0.1" virtual host we'll reverse "/" and
"/examples"
(XXX need a better example )
(use "http://127.0.0.1/examples" )
<Host name="127.0.0.1" >
<Context path=""
docBase="webapps/examples" />
<Context path="/examples"
docBase="webapps/ROOT" />
</Host>
-->
</ContextManager>
</Server>