title: Adding a new webservice in a struts2 web application
body: <p>I'm working on Netbeans IDE 7.0.1, and these are the libraries I am using:</p>
  
  <ul>
  <li>antlr-2.7.6.jar</li>
  <li>commons-beanutils-1.8.1.jar</li>
  <li>commons-collections-3.2.jar</li>
  <li>commons-digester-2.0.jar</li>
  <li>commons-fileupload-1.2.1.jar</li>
  <li>commons-logging-1.0.4.jar</li>
  <li>dom4j-1.6.1.jar</li>
  <li>ejb3-persistence.jar</li>
  <li>freemarker-2.3.15.jar</li>
  <li>hibernate-annotations-3.2.0.ga.jar</li>
  <li>hibernate-commons-annotations.jar</li>
  <li>hibernate-core.jar</li>
  <li>hsqldb.jar</li>
  <li>javassist-3.9.0.GA.jar</li>
  <li>jta-1.1.jar</li>
  <li>log4j-1.2.15.jar</li>
  <li>mysql-connector-java-5.1.10-bin.jar</li>
  <li>ognl-2.7.3.jar</li>
  <li>slf4j-api-1.4.2.jar</li>
  <li>slf4j-log4j12-1.4.2.jar</li>
  <li>struts2-config-browser-plugin-2.1.6.jar</li>
  <li>struts2-core-2.1.8.1.jar</li>
  <li>struts2-dojo-plugin-2.2.3.1.jar</li>
  <li>xwork-core-2.1.6.jar</li>
  </ul>
  
  <p>I created a Struts2 web application, and I added a web service in a new package <em>webservice</em> by using Netbeans wizard; in my <code>struts.xml</code> I used the following:</p>
  
  <pre><code>&lt;constant name="struts.action.excludePattern" value="/YouSportWS*"/&gt;
  </code></pre>
  
  <p>but when I test my web service by clicking <em>Test Web Service</em> in Netbeans contextual menu, I get in my browser the following error:</p>
  
  <pre><code>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)
  </code></pre>
  
  <p>What's wrong in my settings?</p>