如何从web.xml调用java.class?

如何从web.xml调用java.class?,java,servlets,Java,Servlets,我在尝试从web.xml调用java类时遇到问题,当我运行应用程序时,我无法加载我的类/方法 在我的应用程序中: JSF2.0 primefaces 3.1.1 springframework 3.0.2 请帮帮我 web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www

我在尝试从web.xml调用java类时遇到问题,当我运行应用程序时,我无法加载我的类/方法

在我的应用程序中:
JSF2.0
primefaces 3.1.1
springframework 3.0.2

请帮帮我

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">

<context-param>
    <param-name>javax.faces.PROJECT_STAGE</param-name>
    <param-value>Production</param-value>
</context-param>

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/app-config.xml</param-value>
</context-param>

<context-param>
    <param-name>javax.faces.FACELETS_LIBRARIES</param-name>
    <param-value>/WEB-INF/springsecurity.taglib.xml</param-value>
</context-param>

<servlet>
    <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/app-config.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>Spring MVC Dispatcher Servlet</servlet-name>
    <url-pattern>*.htm</url-pattern>
</servlet-mapping>

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

<listener>
    <listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<listener>
    <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
</listener>

<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.jsf</url-pattern>
</servlet-mapping>

<servlet>
    <servlet-name>Mama</servlet-name>
    <servlet-class>hobic.controller.Mama</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>Mama</servlet-name>
    <url-pattern>/hobic.controller</url-pattern>
</servlet-mapping>


</web-app>
错误

严重:访问CryptoMeWindow$1.0时发生异常,大小为122769
java.lang.ArrayIndexOutOfBoundsException:130207
位于org.objectweb.asm.ClassReader。(未知来源)
位于org.objectweb.asm.ClassReader。(未知来源)
位于org.objectweb.asm.ClassReader。(未知来源)
位于org.glassfish.hk2.classmodel.reflect.Parser$5.on(Parser.java:362)
位于com.sun.enterprise.v3.server.ReadableArchiveScanerAdapter.handleEntry(ReadableArchiveScanerAdapter.java:171)
位于com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.onSelectedEntries(ReadableArchiveScanerAdapter.java:133)
位于org.glassfish.hk2.classmodel.reflect.Parser.doJob(Parser.java:348)
位于org.glassfish.hk2.classmodel.reflect.Parser.access$300(Parser.java:70)
位于org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:307)
位于org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:296)
位于java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
位于java.util.concurrent.FutureTask.run(FutureTask.java:138)
位于java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
运行(Thread.java:662)
信息:SEC1002:安全管理器已关闭。
信息:SEC1010:正在进入安全启动服务
信息:SEC1143:正在加载策略提供程序com.sun.enterprise.security.provider.PolicyWrapper。
信息:SEC1115:已成功创建类类型为[com.sun.enterprise.security.auth.Realm.file.FileRealm]的领域[admin Realm]。
信息:SEC1115:已成功创建类类型为[com.sun.enterprise.security.auth.Realm.file.FileRealm]的领域[文件]。
信息:SEC1115:已成功创建类类型为[com.sun.enterprise.security.auth.Realm.certificate.CertificateRealm]的领域[certificate]。
信息:SEC1011:安全服务已成功启动
信息:实例化了org.hibernate.validator.engine.resolver.jpatransablesolver的实例。
信息:WEB0169:在主机/端口[0.0.0.0:8080]上创建了HTTP侦听器[HTTP-listener-1]
信息:WEB0169:在主机/端口[0.0.0.0:8181]上创建了HTTP侦听器[HTTP-listener-2]
信息:WEB0169:在主机/端口[0.0.0.0:4848]上创建了HTTP侦听器[管理员侦听器]
信息:WEB0171:已创建虚拟服务器[服务器]
信息:WEB0171:已创建虚拟服务器[\uu asadmin]
信息:WEB0172:虚拟服务器[服务器]已加载默认web模块[]
信息:JTS5014:可恢复的JTS实例,serverId=[3700]
信息:EJB TestSessionBean的可移植JNDI名称:[java:global/Hobic/Hobic-EJB/TestSessionBean!Hobic.view.TestSessionBean远程,java:global/Hobic/Hobic-EJB/TestSessionBean]
信息:EJB TestSessionBean的Glassfish特定(不可移植)JNDI名称:[hobic.view.TestSessionBeanRemote#hobic.view.TestSessionBeanRemote,hobic.view.TestSessionBeanRemote]
信息:为上下文“/Hobic war”初始化Mojarra 2.1.3(FCS b02)
信息:实例化了org.hibernate.validator.engine.resolver.jpatransablesolver的实例。
警告:JSF1074:名为“loginBean”的托管bean已注册。将现有托管bean类类型hobic.controller.LoginBean替换为hobic.controller.LoginBean。
信息:在PrimeFaces 3.1.1上运行
信息:PWC1412:WebModule[null]ServletContext.log():初始化Spring根WebApplicationContext
严重:log4j:WARN找不到记录器(org.springframework.web.context.ContextLoader)的追加器。
严重:log4j:警告请正确初始化log4j系统。
严重:log4j:警告请参阅http://logging.apache.org/log4j/1.2/faq.html#noconfig 更多信息。
信息:实例化了org.hibernate.validator.engine.resolver.jpatransablesolver的实例。
信息:PWC1412:WebModule[null]ServletContext.log():初始化Spring FrameworkServlet'Spring MVC Dispatcher Servlet'
信息:实例化了org.hibernate.validator.engine.resolver.jpatransablesolver的实例。
信息:WEB0671:在[Hobic war]加载应用程序[Hobic#Hobic war.war]
信息:Hobic在45269毫秒内成功部署。

在web.xml中,您只能指定扩展HttpServlet的servlet类。您不能在servlet类中使用swing代码。因此,请删除swing代码。

您的web.xml说

<servlet>
    <servlet-name>Mama</servlet-name>
    <servlet-class>hobic.controller.Mama</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>Mama</servlet-name>
    <url-pattern>/hobic.controller</url-pattern>
</servlet-mapping>

阅读基础教程

您在应用程序中使用了错误的配置样式。请查看这些链接,这可能对您有所帮助。请不要在web应用程序中使用swing代码,在扩展HttpServlet时必须编写doGet()或doPost()方法

具体错误是什么?我没有在java类中使用swing,我尝试了您的建议,但它不起作用,请查看updatedJOptionPane.showMessageDialog(null,“无其他问题”);是Swing,您的错误具体是什么?@chemic您可能已经实现了
HttpServlet
,但是您还没有实现
doGet()
和/或
doPost()
方法,这些方法是请求传递给代码的方式。您的方法
metalica()
将永远不会被调用。您需要远离此问题,阅读基本的Servlet教程。我不知道CryptoMeWindow$1.class,因为我没有创建/设置它…。#困惑…:(
SEVERE: Exception while visiting CryptoMeWindow$1.class of size 122769
java.lang.ArrayIndexOutOfBoundsException: 130207
    at org.objectweb.asm.ClassReader.<init>(Unknown Source)
    at org.objectweb.asm.ClassReader.<init>(Unknown Source)
    at org.objectweb.asm.ClassReader.<init>(Unknown Source)
    at org.glassfish.hk2.classmodel.reflect.Parser$5.on(Parser.java:362)
    at com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.handleEntry(ReadableArchiveScannerAdapter.java:171)
    at com.sun.enterprise.v3.server.ReadableArchiveScannerAdapter.onSelectedEntries(ReadableArchiveScannerAdapter.java:133)
    at org.glassfish.hk2.classmodel.reflect.Parser.doJob(Parser.java:348)
    at org.glassfish.hk2.classmodel.reflect.Parser.access$300(Parser.java:70)
    at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:307)
    at org.glassfish.hk2.classmodel.reflect.Parser$3.call(Parser.java:296)
    at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
    at java.util.concurrent.FutureTask.run(FutureTask.java:138)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)

INFO: SEC1002: Security Manager is OFF.
INFO: SEC1010: Entering Security Startup Service
INFO: SEC1143: Loading policy provider    com.sun.enterprise.security.provider.PolicyWrapper.
INFO: SEC1115: Realm [admin-realm] of classtype  [com.sun.enterprise.security.auth.realm.file.FileRealm] successfully created.
INFO: SEC1115: Realm [file] of classtype [com.sun.enterprise.security.auth.realm.file.FileRealm] successfully created.
INFO: SEC1115: Realm [certificate] of classtype [com.sun.enterprise.security.auth.realm.certificate.CertificateRealm] successfully created.
INFO: SEC1011: Security Service(s) Started Successfully
INFO: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.
INFO: WEB0169: Created HTTP listener [http-listener-1] on host/port [0.0.0.0:8080]
INFO: WEB0169: Created HTTP listener [http-listener-2] on host/port [0.0.0.0:8181]
INFO: WEB0169: Created HTTP listener [admin-listener] on host/port [0.0.0.0:4848]
INFO: WEB0171: Created virtual server [server]
INFO: WEB0171: Created virtual server [__asadmin]
INFO: WEB0172: Virtual server [server] loaded default web module []
INFO: JTS5014: Recoverable JTS instance, serverId = [3700]
INFO: Portable JNDI names for EJB TestSessionBean : [java:global/Hobic/Hobic-   ejb/TestSessionBean!hobic.view.TestSessionBeanRemote, java:global/Hobic/Hobic- ejb/TestSessionBean]
INFO: Glassfish-specific (Non-portable) JNDI names for EJB TestSessionBean :   [hobic.view.TestSessionBeanRemote#hobic.view.TestSessionBeanRemote,  hobic.view.TestSessionBeanRemote]
INFO: Initializing Mojarra 2.1.3 (FCS b02) for context '/Hobic-war'
INFO: Instantiated an instance of  org.hibernate.validator.engine.resolver.JPATraversableResolver.
WARNING: JSF1074: Managed bean named 'loginBean' has already been registered.     Replacing existing managed bean class type hobic.controller.LoginBean with  hobic.controller.LoginBean.
INFO: Running on PrimeFaces 3.1.1
INFO: PWC1412: WebModule[null] ServletContext.log():Initializing Spring root  WebApplicationContext
SEVERE: log4j:WARN No appenders could be found for logger  (org.springframework.web.context.ContextLoader).
SEVERE: log4j:WARN Please initialize the log4j system properly.
SEVERE: log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more  info.
INFO: Instantiated an instance of  org.hibernate.validator.engine.resolver.JPATraversableResolver.
INFO: PWC1412: WebModule[null] ServletContext.log():Initializing Spring FrameworkServlet 'Spring MVC Dispatcher Servlet'
INFO: Instantiated an instance of org.hibernate.validator.engine.resolver.JPATraversableResolver.
INFO: WEB0671: Loading application [Hobic#Hobic-war.war] at [Hobic-war]
INFO: Hobic was successfully deployed in 45,269 milliseconds.
<servlet>
    <servlet-name>Mama</servlet-name>
    <servlet-class>hobic.controller.Mama</servlet-class>
</servlet>

<servlet-mapping>
    <servlet-name>Mama</servlet-name>
    <url-pattern>/hobic.controller</url-pattern>
</servlet-mapping>
public class Mama extends HttpServlet {

   // override service method(s) that you intend to support.

}