JBoss AS 7写一个简单的web service

CyberKnightGIC 2012-02-28 12:13:08
我按jboss的官方文档这么做:
1.写一个pojo类,声明一个方法如下:

package com.sample;

import javax.jws.WebMethod;
import javax.jws.WebService;

@WebService
public class HelloWorld {
@WebMethod
public void sayHello(){
System.out.print("Hello");
}
}

之后web.xml是这么写的:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>Hello</display-name>

<servlet>
<servlet-name>HelloService</servlet-name>
<servlet-class>com.sample.HelloWorld</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloService</servlet-name>
<url-pattern>/hello</url-pattern>
</servlet-mapping>

</web-app>

然后部署到jboss AS 7没有问题,但是访问的时候报错:
exception

javax.servlet.ServletException: Class com.sample.HelloWorld is not a Servlet
org.jboss.as.web.NamingValve.invoke(NamingValve.java:57)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:667)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951)
java.lang.Thread.run(Thread.java:680)
root cause

java.lang.ClassCastException: com.sample.HelloWorld cannot be cast to javax.servlet.Servlet
org.jboss.as.web.NamingValve.invoke(NamingValve.java:57)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:362)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:877)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:667)
org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:951)
java.lang.Thread.run(Thread.java:680)


掉了哪一步吗?JBossWS不支持不写wsdl用pojo实现吗?
...全文
228 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
热烈的红颜 2012-04-30
  • 打赏
  • 举报
回复
我走过 把EJB发布成webservice的, 就是在EJB 3.0上面加上@webservice注解 然后是用javaws提供的注解就ok
  • 打赏
  • 举报
回复
Class com.sample.HelloWorld is not a Servlet 找不到Action类。你的思路还是没转换过来,依然是servlet的思路假web.xml配置。
web.xml配置 <context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/faces-config.xml</param-value>
</context-param>

然后在faces-config.xml配置。
action层;@ManagedBean(name = "XXX")
@SessionScoped
public class HelloWorld {
public void sayHello(){
System.out.print("Hello");
}
}

6,787

社区成员

发帖
与我相关
我的任务
社区描述
JBoss技术交流
社区管理员
  • JBoss技术交流社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧