Here is the basic structure you want.....
someEJBs.jar - this is a jar file with your ejbs in it....
+com
|---+company
|---+package
|---+ejb
|---*.class
+META-INF
|---ejb-jar.xml
|---jboss.xml
|---jaws.xml
the last two files are optional.
web-app.war
+jsps
+any other resource directories
+WEB-INF
|---+lib
|---*.jar < jars to include in classpath
+classes
|---*.class < your servlet classes
+web.xml
+jboss-web.xml < optional
your ear file will look like this
application.ear
+someEJBs.jar
+web-app.war
+META-INF
|---application.xml
Here is an example web.xml for you which maps several jsp files and includes
security
<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app>
<servlet>
<servlet-name>sitereports</servlet-name>
<display-name>sitereports</display-name>
<description>No Description</description>
<jsp-file>/site/reports.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>sitereports</servlet-name>
<url-pattern>/site/reports</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>messagepost</servlet-name>
<display-name>messagepost</display-name>
<description>No Description</description>
<jsp-file>/user/messagePost.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>messagepost</servlet-name>
<url-pattern>/user/messagePost</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>manager</servlet-name>
<display-name>manager</display-name>
<description>No Description</description>
<jsp-file>/restricted/manager.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>manager</servlet-name>
<url-pattern>/restricted/manager</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>download</servlet-name>
<display-name>download report</display-name>
<description>No Description</description>
<jsp-file>/restricted/downloadReport.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>download</servlet-name>
<url-pattern>/restricted/downloadReport</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>status</servlet-name>
<display-name>status report</display-name>
<description>No Description</description>
<jsp-file>/restricted/status.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>status</servlet-name>
<url-pattern>/restricted/status</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>statusController</servlet-name>
<display-name>status Controller</display-name>
<description>No Description</description>
<jsp-file>/restricted/statusController.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>statusController</servlet-name>
<url-pattern>/restricted/statusController</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>bysite</servlet-name>
<display-name>by Site</display-name>
<description>No Description</description>
<jsp-file>/restricted/bysite.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>bysite</servlet-name>
<url-pattern>/restricted/bysite</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>bydate</servlet-name>
<display-name>by date</display-name>
<description>No Description</description>
<jsp-file>/restricted/bydate.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>bydate</servlet-name>
<url-pattern>/restricted/bydate</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>bysitedate</servlet-name>
<display-name>by Sitedate</display-name>
<description>No Description</description>
<jsp-file>/restricted/bysitedate.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>bysitedate</servlet-name>
<url-pattern>/restricted/bysitedate</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>discussion</servlet-name>
<display-name>discussions</display-name>
<description>No Description</description>
<jsp-file>/user/discussion.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>discussion</servlet-name>
<url-pattern>/user/discussion</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>chartall</servlet-name>
<display-name>chart all</display-name>
<description>No Description</description>
<jsp-file>/restricted/chartall.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>chartall</servlet-name>
<url-pattern>/restricted/chartall</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>approveUsers</servlet-name>
<display-name>approve Users</display-name>
<description>No Description</description>
<jsp-file>/restricted/approveUsers.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>approveUsers</servlet-name>
<url-pattern>/restricted/approveUsers</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>
<taglib>
<taglib-uri>chartTag</taglib-uri>
<taglib-location>/WEB-INF/tlds/chart.tld</taglib-location>
</taglib>
<security-constraint>
<web-resource-collection>
<web-resource-name>user</web-resource-name>
<url-pattern>/user/*</url-pattern>
<http-method>DELETE</http-method>
<http-method>GET</http-method>
<http-method>POST</http-method>
<http-method>PUT</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>manager</role-name>
<role-name>siteadmin</role-name>
<role-name>user</role-name>
</auth-constraint>
<user-data-constraint>
<description>no description</description>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>site</web-resource-name>
<url-pattern>/site/*</url-pattern>
<http-method>DELETE</http-method>
<http-method>GET</http-method>
<http-method>POST</http-method>
<http-method>PUT</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>manager</role-name>
<role-name>siteadmin</role-name>
<role-name>user</role-name>
</auth-constraint>
<user-data-constraint>
<description>no description</description>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<security-constraint>
<web-resource-collection>
<web-resource-name>restricted</web-resource-name>
<url-pattern>/restricted/*</url-pattern>
<http-method>DELETE</http-method>
<http-method>GET</http-method>
<http-method>POST</http-method>
<http-method>PUT</http-method>
</web-resource-collection>
<auth-constraint>
<role-name>manager</role-name>
</auth-constraint>
<user-data-constraint>
<description>no description</description>
<transport-guarantee>NONE</transport-guarantee>
</user-data-constraint>
</security-constraint>
<login-config>
<auth-method>BASIC</auth-method>
<realm-name>pagescreamer</realm-name>
</login-config>
<security-role>
<description>A user with administrative role</description>
<role-name>admin</role-name>
</security-role>
<security-role>
<description>A user with site administrative role</description>
<role-name>siteadmin</role-name>
</security-role>
<security-role>
<description>A user role</description>
<role-name>user</role-name>
</security-role>
<ejb-ref>
<ejb-ref-name>ejb/messageController</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<home>com.crunchy.ejb.session.messageControllerHome</home>
<remote>com.crunchy.ejb.session.messageController</remote>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>ejb/messagethread</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<home>com.crunchy.ejb.entity.MessagethreadTHome</home>
<remote>com.crunchy.ejb.entity.MessagethreadT</remote>
</ejb-ref>
</web-app>
Here is an ejb.jar....
<?xml version="1.0" encoding="Cp1252"?>
<!DOCTYPE ejb-jar PUBLIC '-//Sun Microsystems, Inc.//DTD Enterprise
JavaBeans 1.1//EN' 'http://java.sun.com/j2ee/dtds/ejb-jar_1_1.dtd'>
<ejb-jar>
<description>PageScreamer Central Message Beans</description>
<display-name>Messages</display-name>
<enterprise-beans>
<session>
<ejb-name>messageController</ejb-name>
<home>com.crunchy.ejb.session.messageControllerHome</home>
<remote>com.crunchy.ejb.session.messageController</remote>
<ejb-class>com.crunchy.ejb.session.messageControllerBean</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
<ejb-ref>
<ejb-ref-name>ejb/messageThread</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<home>com.crunchy.ejb.entity.MessagethreadTHome</home>
<remote>com.crunchy.ejb.entity.MessagethreadT</remote>
<ejb-link>messageThread</ejb-link>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>ejb/forum</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<home>com.crunchy.ejb.entity.ForumTHome</home>
<remote>com.crunchy.ejb.entity.ForumT</remote>
<ejb-link>forum</ejb-link>
</ejb-ref>
<ejb-ref>
<ejb-ref-name>ejb/message</ejb-ref-name>
<ejb-ref-type>Entity</ejb-ref-type>
<home>com.crunchy.ejb.entity.MessageTHome</home>
<remote>com.crunchy.ejb.entity.MessageT</remote>
<ejb-link>message</ejb-link>
</ejb-ref>
<security-role-ref>
<role-name>user</role-name>
<role-link>user</role-link>
</security-role-ref>
<security-role-ref>
<role-name>siteadmin</role-name>
<role-link>siteadmin</role-link>
</security-role-ref>
<security-role-ref>
<role-name>manager</role-name>
<role-link>manager</role-link>
</security-role-ref>
</session>
<entity>
<ejb-name>messageThread</ejb-name>
<home>com.crunchy.ejb.entity.MessagethreadTHome</home>
<remote>com.crunchy.ejb.entity.MessagethreadT</remote>
<ejb-class>com.crunchy.ejb.entity.MessagethreadTBean</ejb-class>
<persistence-type>Bean</persistence-type>
<prim-key-class>com.crunchy.ejb.entity.MessagethreadT_PK</prim-key-class>
<reentrant>False</reentrant>
<security-role-ref>
<role-name>user</role-name>
<role-link>user</role-link>
</security-role-ref>
<security-role-ref>
<role-name>manager</role-name>
<role-link>manager</role-link>
</security-role-ref>
<security-role-ref>
<role-name>siteadmin</role-name>
<role-link>siteadmin</role-link>
</security-role-ref>
</entity>
<entity>
<ejb-name>forum</ejb-name>
<home>com.crunchy.ejb.entity.ForumTHome</home>
<remote>com.crunchy.ejb.entity.ForumT</remote>
<ejb-class>com.crunchy.ejb.entity.ForumTBean</ejb-class>
<persistence-type>Bean</persistence-type>
<prim-key-class>com.crunchy.ejb.entity.ForumT_PK</prim-key-class>
<reentrant>False</reentrant>
<security-role-ref>
<role-name>user</role-name>
<role-link>user</role-link>
</security-role-ref>
<security-role-ref>
<role-name>manager</role-name>
<role-link>manager</role-link>
</security-role-ref>
<security-role-ref>
<role-name>siteadmin</role-name>
<role-link>siteadmin</role-link>
</security-role-ref>
</entity>
<entity>
<ejb-name>message</ejb-name>
<home>com.crunchy.ejb.entity.MessageTHome</home>
<remote>com.crunchy.ejb.entity.MessageT</remote>
<ejb-class>com.crunchy.ejb.entity.MessageTBeanBMP</ejb-class>
<persistence-type>Bean</persistence-type>
<prim-key-class>com.crunchy.ejb.entity.MessageT_PK</prim-key-class>
<reentrant>False</reentrant>
<security-role-ref>
<role-name>user</role-name>
<role-link>user</role-link>
</security-role-ref>
<security-role-ref>
<role-name>manager</role-name>
<role-link>manager</role-link>
</security-role-ref>
<security-role-ref>
<role-name>siteadmin</role-name>
<role-link>siteadmin</role-link>
</security-role-ref>
</entity>
</enterprise-beans>
<assembly-descriptor>
<security-role>
<role-name>user</role-name>
</security-role>
<security-role>
<role-name>manager</role-name>
</security-role>
<security-role>
<role-name>siteadmin</role-name>
</security-role>
<method-permission>
<role-name>user</role-name>
<role-name>manager</role-name>
<role-name>siteadmin</role-name>
<method>
<ejb-name>message</ejb-name>
<method-name>*</method-name>
</method>
</method-permission>
<method-permission>
<role-name>user</role-name>
<role-name>manager</role-name>
<role-name>siteadmin</role-name>
<method>
<ejb-name>forum</ejb-name>
<method-name>*</method-name>
</method>
</method-permission>
<method-permission>
<role-name>user</role-name>
<role-name>manager</role-name>
<role-name>siteadmin</role-name>
<method>
<ejb-name>messageThread</ejb-name>
<method-name>*</method-name>
</method>
</method-permission>
<method-permission>
<role-name>user</role-name>
<role-name>manager</role-name>
<role-name>siteadmin</role-name>
<method>
<ejb-name>messageController</ejb-name>
<method-name>*</method-name>
</method>
</method-permission>
<container-transaction>
<method>
<ejb-name>messageController</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Supports</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>forum</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>messageThread</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
<container-transaction>
<method>
<ejb-name>message</ejb-name>
<method-name>*</method-name>
</method>
<trans-attribute>Required</trans-attribute>
</container-transaction>
</assembly-descriptor>
</ejb-jar>
and finally here is the application.xml
<?xml version="1.0" encoding="ISO-8859-1"?>
<application>
<display-name>Some application</display-name>
<description>
</description>
<module>
<web>
<web-uri>pagescreamer.war</web-uri>
<context-root>/pagescreamer</context-root>
</web>
</module>
<module>
<ejb>message.jar</ejb>
</module>
<module>
<ejb>databeans.jar</ejb>
</module>
<module>
<ejb>userbeans.jar</ejb>
</module>
</application>
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]]On Behalf Of mroosendaal
Sent: Monday, June 11, 2001 8:21 AM
To: [EMAIL PROTECTED]
Subject: [JBoss-user] howto for a webapp.
You should not use WEB-INF for your JSP's, as that directory is for private
resources... the public resources (protected by security or not should go in
the root of the war file.
Hope this has helped,
Al
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-user