Java JBoss中带注释的WebService中的ClassCastException&;爪哇6

Java JBoss中带注释的WebService中的ClassCastException&;爪哇6,java,web-services,jboss,annotations,Java,Web Services,Jboss,Annotations,我正在使用JBoss4.0创建一个简单的Web服务,使用@WebService注释,如中所述。然而,当我把服务当作一个servlet(根据本文中的说明)来处理时,我得到一个ClassCastException声明我的带注释的webservice类不能转换为javax.servlet.servlet 我哪里做错了 课程如下: //SimpleServiceWS.java import javax.jws.WebService; @WebService() public interface

我正在使用JBoss4.0创建一个简单的Web服务,使用@WebService注释,如中所述。然而,当我把服务当作一个servlet(根据本文中的说明)来处理时,我得到一个
ClassCastException
声明我的带注释的webservice类不能转换为
javax.servlet.servlet

我哪里做错了

课程如下:

//SimpleServiceWS.java    
import javax.jws.WebService;

@WebService()
public interface SimpleServiceWS {
    public String simpleMethod();
}



看起来JBoss4.0还不足以以您试图运行web服务的方式运行它们。现成的JBoss4.0.5(最新的4.0版本)有一个JBossWS的旧实现。您需要更新版本的JBossWS,该版本将与JDK1.5及更高版本上的注释一起使用


注意:接口和类都适用于Jboss 5.1.0和4.2.3。对于您来说,获得另一个版本的JBoss AS可能会更容易。

看起来JBoss 4.0不足以以您尝试的方式运行web服务。现成的JBoss4.0.5(最新的4.0版本)有一个JBossWS的旧实现。您需要更新版本的JBossWS,该版本将与JDK1.5及更高版本上的注释一起使用


注意:接口和类都适用于Jboss 5.1.0和4.2.3。您可能更容易获得JBoss AS的另一个版本。

我与JBoss AS 6.1有相同的问题,我在这台服务器上有一个带有注释的Web服务的应用程序,并成功部署,但不是在新的服务器上;分析这个问题时,我意识到我的新WAR应用程序有一个WEB-INF/lib/目录,其中包含JBoss已经拥有的一些JAX JAR,但可能有不同的版本,所以我删除了WEB-INF/lib/,重新部署了WebApplication,一切都正常了。我认为这可能是一个类加载器问题,或者可能是我在NetBeans中开发Web服务时使用的JAX版本与JBoss AS 6.1不兼容。

我在JBoss AS 6.1中遇到了同样的问题,我在这台服务器上有一个带有注释的Web服务的应用程序,并成功部署,但不是在新的服务器上;分析这个问题时,我意识到我的新WAR应用程序有一个WEB-INF/lib/目录,其中包含JBoss已经拥有的一些JAX JAR,但可能有不同的版本,所以我删除了WEB-INF/lib/,重新部署了WebApplication,一切都正常了。我认为这可能是一个类加载器问题,或者可能是我在NetBeans中开发web服务时使用的JAX版本与JBoss AS 6.1不兼容。

我看不到链接页面中告诉您如何构建
web.xml
-从web.xml中删除meRemove/SimpleServiceWS看起来不合适,这是在错误的地方感谢斯卡夫曼和罗曼的建议。我刚才看见他们了。然而,尽管有这些,我还是无法让代码运行。然而,我现在已经迁移到JBoss5.x,在这里一切都很好。再次感谢你的帮助!我看不到链接页面中告诉您如何构建
web.xml
-从您的web.xml中删除meRemove/simpleservices看起来不对,它位于错误的位置感谢skaffman和Romain的建议。我刚才看见他们了。然而,尽管有这些,我还是无法让代码运行。然而,我现在已经迁移到JBoss5.x,在这里一切都很好。再次感谢你的帮助!谢谢你,乔治!事实上,甚至在我看到你的评论之前,我就已经升级到JBoss5.0了。再次感谢您的支持!谢谢你,乔治!事实上,甚至在我看到你的评论之前,我就已经升级到JBoss5.0了。再次感谢您的支持!
//SimpleServiceImpl.java
import javax.jws.WebService;

@WebService( serviceName="SimpleService", portName="SimpleServicePort", endpointInterface="edu.shyam.ws.SimpleServiceWS")
public class SimpleServiceImpl implements SimpleServiceWS {

    public String simpleMethod() {
        return "Simple response";
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>Service</display-name>
    <welcome-file-list>
        <welcome-file>/SimpleServiceWS</welcome-file>
    </welcome-file-list>
    <servlet>
        <servlet-name>SimpleServiceWS</servlet-name>
        <servlet-class>edu.shyam.ws.SimpleServiceWS</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>SimpleServiceWS</servlet-name>
        <url-pattern>/SimpleService</url-pattern>
    </servlet-mapping>
</web-app>
java.lang.ClassCastException: SimpleServiceImpl cannot be cast to javax.servlet.Servlet
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1048)
    at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:750)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:130)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:39)
    at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:159)
    at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:59)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112)
    at java.lang.Thread.run(Unknown Source)