445495 Improve Exception message when no jndi resource to bind for a name in web.xml
This commit is contained in:
parent
149ee01047
commit
bc265953a5
|
@ -892,7 +892,7 @@ public class PlusDescriptorProcessor extends IterativeDescriptorProcessor
|
||||||
if (defaultNE!=null)
|
if (defaultNE!=null)
|
||||||
defaultNE.bindToENC(name);
|
defaultNE.bindToENC(name);
|
||||||
else
|
else
|
||||||
throw new IllegalStateException("Nothing to bind for name "+nameInEnvironment);
|
throw new IllegalStateException("Nothing to bind for name " + name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
package org.eclipse.jetty.plus.webapp;
|
package org.eclipse.jetty.plus.webapp;
|
||||||
|
|
||||||
|
|
||||||
|
import java.lang.reflect.InvocationTargetException;
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.assertEquals;
|
||||||
import static org.junit.Assert.assertNotNull;
|
import static org.junit.Assert.assertNotNull;
|
||||||
import static org.junit.Assert.assertTrue;
|
import static org.junit.Assert.assertTrue;
|
||||||
|
@ -50,6 +51,7 @@ public class PlusDescriptorProcessorTest
|
||||||
protected FragmentDescriptor fragDescriptor1;
|
protected FragmentDescriptor fragDescriptor1;
|
||||||
protected FragmentDescriptor fragDescriptor2;
|
protected FragmentDescriptor fragDescriptor2;
|
||||||
protected FragmentDescriptor fragDescriptor3;
|
protected FragmentDescriptor fragDescriptor3;
|
||||||
|
protected FragmentDescriptor fragDescriptor4;
|
||||||
protected WebAppContext context;
|
protected WebAppContext context;
|
||||||
/**
|
/**
|
||||||
* @throws java.lang.Exception
|
* @throws java.lang.Exception
|
||||||
|
@ -81,6 +83,9 @@ public class PlusDescriptorProcessorTest
|
||||||
URL frag3Xml = Thread.currentThread().getContextClassLoader().getResource("web-fragment-3.xml");
|
URL frag3Xml = Thread.currentThread().getContextClassLoader().getResource("web-fragment-3.xml");
|
||||||
fragDescriptor3 = new FragmentDescriptor(org.eclipse.jetty.util.resource.Resource.newResource(frag3Xml));
|
fragDescriptor3 = new FragmentDescriptor(org.eclipse.jetty.util.resource.Resource.newResource(frag3Xml));
|
||||||
fragDescriptor3.parse();
|
fragDescriptor3.parse();
|
||||||
|
URL frag4Xml = Thread.currentThread().getContextClassLoader().getResource("web-fragment-4.xml");
|
||||||
|
fragDescriptor4 = new FragmentDescriptor(org.eclipse.jetty.util.resource.Resource.newResource(frag4Xml));
|
||||||
|
fragDescriptor4.parse();
|
||||||
}
|
}
|
||||||
|
|
||||||
@After
|
@After
|
||||||
|
@ -94,6 +99,32 @@ public class PlusDescriptorProcessorTest
|
||||||
Thread.currentThread().setContextClassLoader(oldLoader);
|
Thread.currentThread().setContextClassLoader(oldLoader);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testMissingResourceDeclaration()
|
||||||
|
throws Exception
|
||||||
|
{
|
||||||
|
ClassLoader oldLoader = Thread.currentThread().getContextClassLoader();
|
||||||
|
Thread.currentThread().setContextClassLoader(context.getClassLoader());
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
PlusDescriptorProcessor pdp = new PlusDescriptorProcessor();
|
||||||
|
pdp.process(context, fragDescriptor4);
|
||||||
|
fail("Expected missing resource declaration");
|
||||||
|
}
|
||||||
|
catch (InvocationTargetException ex)
|
||||||
|
{
|
||||||
|
Throwable cause = ex.getCause();
|
||||||
|
assertNotNull(cause);
|
||||||
|
assertNotNull(cause.getMessage());
|
||||||
|
assertTrue(cause.getMessage().contains("jdbc/mymissingdatasource"));
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
Thread.currentThread().setContextClassLoader(oldLoader);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testWebXmlResourceDeclarations()
|
public void testWebXmlResourceDeclarations()
|
||||||
throws Exception
|
throws Exception
|
||||||
|
|
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
|
||||||
|
<web-fragment
|
||||||
|
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-fragment_3_0.xsd"
|
||||||
|
version="3.0">
|
||||||
|
|
||||||
|
<name>Fragment 4</name>
|
||||||
|
|
||||||
|
<resource-ref>
|
||||||
|
<res-ref-name>jdbc/mymissingdatasource</res-ref-name>
|
||||||
|
<res-type>javax.sql.DataSource</res-type>
|
||||||
|
<res-auth>Container</res-auth>
|
||||||
|
</resource-ref>
|
||||||
|
</web-fragment>
|
Loading…
Reference in New Issue