[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
Pavel Janousek (Commented) (JIRA)
jira-events at lists.jboss.org
Wed Jan 4 11:30:10 EST 2012
[ https://issues.jboss.org/browse/AS7-3162?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12653831#comment-12653831 ]
Pavel Janousek commented on AS7-3162:
-------------------------------------
Wait, wait, I've in mind a bit another case(s)...
Stuart refers from 2.3.2 section of JAX-RS 1.1. specs, right...
I think actual implementation in RESTEasy doesn't conform to JAX-RS specs in fully manner., I'll try to cover them after investigation and verifying.
At first: Do you agree that servlet-name *org.jboss.as.test.integration.jaxrs.deployments.ApplicatonEmptyWithoutAOP* should be added by the RESTEasy in this case:
Application impl:{code}package org.jboss.as.test.integration.jaxrs.deployments;
import java.util.HashSet;
import java.util.Set;
import javax.ws.rs.core.Application;
public class ApplicationEmptyWithoutAOP extends Application {
private Set<Class<?>> classes = new HashSet<Class<?>>();
public ApplicationEmptyWithoutAOP() {
}
@Override
public Set<Class<?>> getClasses() {
return classes;
}
}
{code} and deployment contain only{code:xml}
<?xml version=1.0 encoding="UTF-8"?>
<web-app version="3.0" 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" metadata-complete="false">
<servlet-mapping>
<servlet-name>org.jboss.as.test.integration.jaxrs.deployments.ApplicatonEmptyWithoutAOP</servlet-name>
<url-pattern>/myjaxrs/*</url-pattern>
</servlet-mapping>
</web-app>
{code} and only packages in WAR this Application, TestCase and SimpleHelloResource... - so no AOP, nor mixing mapping etc.
This deployment fails with "Context [/jaxrsnoap_without_aop] startup failed due to previous errors: java.lang.IllegalArgumentException: Servlet mapping specifies an unknown servlet name org.jboss.as.test.integration.jaxrs.deployments.ApplicatonEmptyWithoutAOP" too. I'm writting now only about requirements in 2.3.2 section, nothing else...
Also 2.3.2 section cases 2 and 3 don't avoid to define javax.ws.rs.Application (the same as in the case when Application subclass isn't present) at all when it isn't defined in web.xml yet - I think this request doesn't break the specs too.
What do you think about these cases?
> 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