Добавление нового веб-сервиса в веб-приложение struts2 - PullRequest
0 голосов
/ 20 декабря 2011

Я работаю в среде IDE Netbeans 7.0.1, и я использую следующие библиотеки:

  • ANTLR-2.7.6.jar
  • Викисклада BeanUtils-1.8.1.jar
  • Викисклад коллекция-3.2.jar
  • Обще-варочного-2.0.jar
  • Обще-FileUpload-1.2.1.jar
  • Обще-каротаж 1.0.4.jar
  • dom4j-1.6.1.jar
  • ejb3-persistence.jar
  • FreeMarker-2.3.15.jar
  • спящий-аннотаций-3.2.0.ga.jar
  • спящий-Обще-annotations.jar
  • зимуют-core.jar
  • hsqldb.jar
  • Javassist-3.9.0.GA.jar
  • JTA-1.1.jar
  • log4j-1.2.15.jar
  • MySQL-разъем-Java-5.1.10-bin.jar
  • OGNL-2.7.3.jar
  • SLF4J-апи-1.4.2.jar
  • SLF4J-log4j12-1.4.2.jar
  • struts2-конфиг-браузер плагин-2.1.6.jar
  • struts2-ядро-2.1.8.1.jar
  • struts2-додзё-плагин-2.2.3.1.jar

Я создал веб-приложение Struts2 и добавил веб-службу в новый пакет webservice с помощью мастера Netbeans; в моем struts.xml я использовал следующее:

<constant name="struts.action.excludePattern" value="/YouSportWS*"/>

но когда я тестирую свой веб-сервис, нажав Test Web Service в контекстном меню Netbeans, я получаю в своем браузере следующую ошибку:

Struts Problem Report

Struts has detected an unhandled exception:

Messages:   
controller.MyWebService
Unable to instantiate Action, controller.YouSportWS, defined for 'YouSportWS' in namespace '/'controller.YouSportWS
File:   org/glassfish/web/loader/WebappClassLoader.java
Line number:    1.519

Stacktraces

Unable to instantiate Action, controller.YouSportWS, defined for 'YouSportWS' in namespace '/'controller.YouSportWS
    com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:307)
    com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:388)
    com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:187)
    org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
    org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
    com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:47)
    org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:478)
    org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
    org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
    org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
    org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
    org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
    org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
    org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
    com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
    com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
    org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
    org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
    com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)
    com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
    com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
    com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
    com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
    com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
    com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
    com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
    com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
    com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
    com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
    com.sun.grizzly.ContextTask.run(ContextTask.java:71)
    com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
    com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
    java.lang.Thread.run(Thread.java:722)

    java.lang.ClassNotFoundException: controller.YouSportWS
        org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1519)
        org.glassfish.web.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1369)
        com.opensymphony.xwork2.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:146)
        com.opensymphony.xwork2.ObjectFactory.getClassInstance(ObjectFactory.java:96)
        com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:149)
        com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:139)
        com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:109)
        com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:288)
        com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:388)
        com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:187)
        org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
        org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
        com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:47)
        org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:478)
        org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)
        org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:256)
        org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:217)
        org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:279)
        org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
        org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:655)
        org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:595)
        com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:98)
        com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:91)
        org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:162)
        org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:330)
        org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:231)
        com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:174)
        com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:828)
        com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:725)
        com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:1019)
        com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:225)
        com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:137)
        com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:104)
        com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:90)
        com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:79)
        com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:54)
        com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:59)
        com.sun.grizzly.ContextTask.run(ContextTask.java:71)
        com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:532)
        com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:513)
        java.lang.Thread.run(Thread.java:722)

Что не так в моих настройках?

1 Ответ

0 голосов
/ 20 декабря 2011

Шаблон должен быть настоящим регулярным выражением:

excludePattern="YouSportWS.*"

См. документацию относительно исключений .

...