2017-02-16 3 views
0

Я создал WS из файла WSDL с помощью веб-служб -> Сгенерирует скелет Java Bean. Затем опубликовал его на web.xml и попытался получить к нему доступ с помощью проводника веб-служб.javax.servlet.UnavailableException: SRVE0201E: Servlet [my_ws]: не является сервлет-классом

Тогда я получил исключение: javax.servlet.UnavailableException: SRVE0201E: Servlet [my_ws]: не класс сервлета

У меня есть эти сгенерированные файлы:

HelloWorld интерфейс:

package helloWorld; 

import javax.jws.WebMethod; 
import javax.jws.WebParam; 
import javax.jws.WebResult; 
import javax.jws.WebService; 
import javax.xml.bind.annotation.XmlSeeAlso; 
import javax.xml.ws.RequestWrapper; 
import javax.xml.ws.ResponseWrapper; 

@WebService(name = "HelloWorld", targetNamespace = "[something]") 
@XmlSeeAlso({ 
    ObjectFactory.class 
}) 
public interface HelloWorld 
{ 
    @WebMethod(action = "sayHello") 
    @WebResult(name = "sayHelloReturn", targetNamespace = "") 
    @RequestWrapper(localName = "sayHello", targetNamespace = "[something]", className = "helloworld.HelloWorld") 
    @ResponseWrapper(localName = "sayHelloResponse", targetNamespace = "[something]", className = "helloworld.HelloWorldResponse") 
    public String sayHello(
     @WebParam(name = "userIdStr", targetNamespace = "") 
     String userIdStr, 
     @WebParam(name = "text", targetNamespace = "") 
     Integer text); 

} 

и следующие Impl:

package helloWorld; 

import helloworld.HelloWorld 


@javax.jws.WebService(endpointInterface = "helloworld.HelloWorld", targetNamespace = "[something]", serviceName = "HelloWorldService", portName = "HelloWorldImpl") 
public class HelloWorldImpl 
{ 

    public String sayHello(String userIdStr, Integer text) 
    { 
     return "Hello " + userIdStr + ", " + text; 
    } 

} 

Файл web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app 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" 
version="3.0"> 
<display-name>Test</display-name> 

<servlet> 
    <servlet-name>helloworld_HelloWorld</servlet-name> 
    <servlet-class>helloworld.HelloWorldImpl</servlet-class> 
    <load-on-startup>1</load-on-startup> 
</servlet> 

<servlet-mapping> 
    <servlet-name>helloworld_HelloWorld</servlet-name> 
    <url-pattern>services/HelloWorldImpl</url-pattern> 
</servlet-mapping> 
<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
</welcome-file-list> 

Я изменил реальные имена и содержание IMPL, потому что я не могу опубликовать. Но дело не в этом.

Почему я не могу опубликовать этот WS? Благодарю.

+0

Заброшено ли оно как диалоговое окно затмения, попробуйте проверить свой WSDL для структуры –

ответ

0

Проблема решена путем удаления web.xml.

Я полагаю, что удаление тегов <servlet> и <servlet-mapping> также может сделать трюк.

Смежные вопросы