[jboss-jira] [JBoss JIRA] (AS7-3162) RESTEasy: Unknown servet name javax.ws.rs.core.Application when javax.ws.rs.core.Application subclass is on classpath

Weinan Li (Commented) (JIRA) jira-events at lists.jboss.org
Wed Jan 4 03:52:11 EST 2012


    [ https://issues.jboss.org/browse/AS7-3162?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12653709#comment-12653709 ] 

Weinan Li commented on AS7-3162:
--------------------------------

Stuart is correct. Thank you for explaining Stuart :-)  

Pavel, have you configured an @Application while you are using the config in web.xml? This shouldn't be used at same time. You should either use @Application + @ApplicationPath or use the traditional config method in web.xml.

Mixing them up is neither correct in standalone or container deployment method.

You can refer to org.jboss.as.jaxrs.deployment.JaxrsIntegrationProcessor for more details:


{code:title=JaxrsIntegrationProcessor.java|borderStyle=solid}
  if (resteasy.getScannedApplicationClass() == null) {
            //if there is no scanned application we must add a servlet with a name of
            //javax.ws.rs.core.Application


        } else {
            //now there are two options.
            //if there is already a servlet defined with an init param
            //we don't do anything.
            //Otherwise we install our filter
            //JAVA-RS seems somewhat confused about the difference between a context param
            //and an init param.

        }

{code} 
                
> RESTEasy: Unknown servet name javax.ws.rs.core.Application when javax.ws.rs.core.Application subclass is on classpath 
> ----------------------------------------------------------------------------------------------------------------------
>
>                 Key: AS7-3162
>                 URL: https://issues.jboss.org/browse/AS7-3162
>             Project: Application Server 7
>          Issue Type: Bug
>          Components: REST
>    Affects Versions: 7.1.0.CR1b
>            Reporter: Pavel Janousek
>            Assignee: Weinan Li
>            Priority: Blocker
>
> I've deployment like this:
> {code}
> @Deployment
> public static Archive<?> deploy() {
> 	WebArchive war = ShrinkWrap.create(WebArchive.class, "jaxrsnoap.war");
> 	war.addPackage(HttpRequest.class.getPackage());
> 	war.addClasses(ApplicationTestCase.class, ApplicationInvalid1.class);
> 	war.addAsWebInfResource(
> 			WebXml.get("<servlet-mapping>\n"
> 					+ "        <servlet-name>javax.ws.rs.core.Application</servlet-name>\n"
> 					+ "        <url-pattern>/myjaxrs/*</url-pattern>\n"
> 					+ "</servlet-mapping>\n" + "\n"), "web.xml");
> 	return war;
> }
> {code}
> This deployment fails during deploying because of "Context [/jaxrsnoap] startup failed due to previous errors: java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name javax.ws.rs.core.Application"
> ApplicationInvalid1 is empty subclass of javax.ws.rs.core.Application like:
> {code}
> public class ApplicationInvalid1 extends Application {
> 	private Set<Class<?>> classes = new HashSet<Class<?>>();
> 	public ApplicationInvalid1() {
> 	}
> 	@Override
> 	public Set<Class<?>> getClasses() {
> 		return classes;
> 	}
> }
> {code}
> There isn't any reference to this class in web.xml or somewhere else. Only class is placed on classpath. If I remove this class from deployment (= change appropriate line to "war.addClasses(ApplicationTestCase.class);", everything will be OK.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list