Ich versuche Hibernate + Spring zum ersten Mal und bekomme diesen Fehler beim Versuch, in DB einzufügen. Der String kommt aus der URL oder einen Standardwert: -IllegalArgument Ausnahme
@RequestMapping("/greeting")
public Greeting greeting(@RequestParam(value="name", defaultValue="World") String name) {
InsertTest test = new InsertTest();
test.insert(name);
return new Greeting(counter.incrementAndGet(),
String.format(template, name));
}
Und die DAO-Methode ist: -
public void insert(String name) {
Resource r=new ClassPathResource("D:\\work\\Spring\\RestAPI\\src\\main\\java\\db\\app.xml");
BeanFactory factory=new XmlBeanFactory(r);
EmployeeDao dao=(EmployeeDao)factory.getBean("d");
Employee e=new Employee();
e.setId(114);
e.setName(name);
e.setSalary(50000);
dao.saveEmployee(e);
}
Und ich Störung erhalte: -
java.lang.IllegalArgumentException: name
at sun.misc.URLClassPath$Loader.findResource(Unknown Source) ~[na:1.8.0_131]
at sun.misc.URLClassPath.findResource(Unknown Source) ~[na:1.8.0_131]
at java.net.URLClassLoader$2.run(Unknown Source) ~[na:1.8.0_131]
at java.net.URLClassLoader$2.run(Unknown Source) ~[na:1.8.0_131]
at java.security.AccessController.doPrivileged(Native Method) ~[na:1.8.0_131]
at java.net.URLClassLoader.findResource(Unknown Source) ~[na:1.8.0_131]
at org.springframework.boot.loader.LaunchedURLClassLoader.findResource(LaunchedURLClassLoader.java:58) ~[gs-rest-service-0.1.0.jar:0.1.0]
at java.lang.ClassLoader.getResource(Unknown Source) ~[na:1.8.0_131]
at java.net.URLClassLoader.getResourceAsStream(Unknown Source) ~[na:1.8.0_131]
at org.apache.catalina.loader.WebappClassLoaderBase.getResourceAsStream(WebappClassLoaderBase.java:1055) ~[tomcat-embed-core-8.5.11.jar!/:8.5.11]
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPathResource.java:166) ~[spring-core-4.3.7.RELEASE.jar!/:4.3.7.RELEASE]
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:330) ~[spring-beans-4.3.7.RELEASE.jar!/:4.3.7.RELEASE]
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBeanDefinitions(XmlBeanDefinitionReader.java:304) ~[spring-beans-4.3.7.RELEASE.jar!/:4.3.7.RELEASE]
at org.springframework.beans.factory.xml.XmlBeanFactory.<init>(XmlBeanFactory.java:79) ~[spring-beans-4.3.7.RELEASE.jar!/:4.3.7.RELEASE]
at org.springframework.beans.factory.xml.XmlBeanFactory.<init>(XmlBeanFactory.java:67) ~[spring-beans-4.3.7.RELEASE.jar!/:4.3.7.RELEASE]
at main.java.db.InsertTest.insert(InsertTest.java:21) ~[classes!/:0.1.0]
at main.java.hello.GreetingController.greeting(GreetingController.java:23) ~[classes!/:0.1.0]
[Bearbeiten] Sie Ihre Frage und schließen Sie die volle Stack-Trace ein. In den nächsten Zeilen erfahren Sie genau, auf welcher Zeile der Fehler liegt. –
Meine Annahme ist, dass 'name' entweder null oder leer ist, und die Ausnahme auf' e.setName (name); 'geworfen wird, wenn dies der Fall ist, debuggen und einfache Validierungen für den Wert, bevor es an die übergeben Methode. –
Ich habe debugged vor dem Senden an die Methode, Es zeigt "Welt", wenn nichts in URL übergeben wird. Außerdem füge ich den Stacktrace –