Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
Leider gelingt es mit jedoch nur bei Rest-Schnitstellen welche vom Content-Type application/json utf8 sind. Aktuell versuche ich vom ITIS den Rest Service zu konsumieren welcher dem Application-Type text/json bietet.
@Flowen mein Problem ist das ich den Rest-API aufruf als String entgegennehme, und damit dann nicht weiß wie ich sinvoll weiterarbeite. In der Regel habe ich eine Anfrage Klasse "Quote":
@Flowen mein Problem ist das ich den Rest-API aufruf als String entgegennehme, und damit dann nicht weiß wie ich sinvoll weiterarbeite. In der Regel habe ich eine Anfrage Klasse "Quote":
@JsonIgnoreProperties(ignoreUnknown = true)
public class Quote {
private String tsn;
public Quote() {
}
public String getTsn() {
return tsn;
}
public void setTsn(String tsn) {
this.tsn = tsn;
}
@Override
public String toString() {
return "Der Suchbegriff " +tsn + " liefert " +" Ergebnisse \n";
}
}
Zu Test-Zwecken versuche ich erstmal nur ein Attribut zu erfragen. Das klappt mit anderen Apis recht gut.
SOAP ist tatsächlich eine Möglichkeit, ich habe das mal halbherzig versucht was auf anhieb Leider auch nicht geklappt hat. Jedoch werd ich mit die Möglichkeit genauer anschauen müssen wenn es über REST nich Möglich ist.
Bitte verwende Code-Tags [code=java]//JAVA CODE HERE[/code] wenn du hier code postest.
Ich kann dir jetzt in der Arbeit leider nicht helfen, da ich keine STS hier habe, aber ich nehme mal an, dass das Problem bei den multiplen "tsn" liegt.
Ich würde den Contenttype einfach mal auf Text/json setzen, statt auf application/json. Dazu kannst du den Konstruktor von MediaType nutzen, als Konstante gibts da leider nichts
Jedoch liegt es leider nicht an den "tsn"- Attributen, da es auch nicht klappt wenn ich ein einzigartiges Attribut verweden. Es liegt glaube tatsächlich am Content-Type.
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("text", "json"));
HttpEntity entity = new HttpEntity( headers);
ResponseEntity<String> result = restTemplate.exchange("https://itis.gov/ITISWebService/jsonservice/getFullRecordFromTSN?tsn=202384", HttpMethod.GET, entity, String.class);
log.info(result.getBody());
Leider kein Erfolg
Java:
Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.
2017-07-10 16:40:51.776 ERROR 351168 --- [ main] o.s.boot.SpringApplication : Application startup failed
java.lang.IllegalStateException: Failed to execute CommandLineRunner
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:779) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:760) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:747) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1162) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1151) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at com.example.demo.DemoApplication.main(DemoApplication.java:22) [classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_111]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_111]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_111]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_111]
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) [idea_rt.jar:na]
Caused by: org.springframework.web.client.HttpClientErrorException: 404 Not Found
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:91) ~[spring-web-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:700) ~[spring-web-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:653) ~[spring-web-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:613) ~[spring-web-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:531) ~[spring-web-4.3.7.RELEASE.jar:4.3.7.RELEASE]
at com.example.demo.DemoApplication.lambda$run$0(DemoApplication.java:60) [classes/:na]
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:776) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
... 11 common frames omitted
2017-07-10 16:40:51.778 INFO 351168 --- [ main] s.c.a.AnnotationConfigApplicationContext : Closing org.springframework.context.annotation.AnnotationConfigApplicationContext@169cf: startup date [Mon Jul 10 16:40:50 CEST 2017]; root of context hierarchy
2017-07-10 16:40:51.778 INFO 351168 --- [ main] o.s.j.e.a.AnnotationMBeanExporter : Unregistering JMX-exposed beans on shutdown
Was mir in deinem letzten Stacktrace ins Auge fällt ist, dass eine HttpClientErrorException geworfen wird welche den Status Code 404 hat. Vielleicht irre ich mich, aber wenn der Content-Type falsch wäre, würden dann nicht ein 406 geworfen?
So wie es aussieht behandelt die Website den Content-Type nicht richtig. Content-Type application/json bzw. text/json 404. Content-Type nichts, Antwort als json. Also am besten einfach mal nichts setzen.
Kannst du auch mit Postman oder einem ähnlichen Tool testen
Error starting ApplicationContext. To display the auto-configuration report re-run your application with 'debug' enabled.
2017-07-10 19:21:59.332 ERROR 349956 --- [ main] o.s.boot.SpringApplication : Application startup failed
java.lang.IllegalStateException: Failed to execute CommandLineRunner
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:779) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.SpringApplication.callRunners(SpringApplication.java:760) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.SpringApplication.afterRefresh(SpringApplication.java:747) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:315) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1162) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1151) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
at com.example.demo.DemoApplication.main(DemoApplication.java:21) [classes/:na]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.8.0_111]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:1.8.0_111]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_111]
at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_111]
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147) [idea_rt.jar:na]
Caused by: java.lang.NullPointerException: null
at com.example.demo.DemoApplication.lambda$run$0(DemoApplication.java:43) [classes/:na]
at org.springframework.boot.SpringApplication.callRunner(SpringApplication.java:776) [spring-boot-1.5.2.RELEASE.jar:1.5.2.RELEASE]
... 11 common frames omitted