2016-07-28 14 views
1

Ich benutze Amazon S3, um Dateien in einen Bucket zu legen, der gut zu funktionieren scheint, wenn ich von meinem localhost verbinde. Im Einsatz bekomme ich eine seltsame Ausnahme, die ich nicht erklären kann. Ich habe die Foren durchsucht und alle Empfehlungen ausprobiert, aber das löst mein Problem nicht. Ich habe sogar meine Jackson Annotationen und Kern zu verschiedenen Versionen ohne Lösung heruntergestuft. Ich bin in der Lage auf den Amazon-Dienst zu verbinden und Dateien hochladen, wenn ich von meinem lokalen Rechner laufen lasse im Sinne hat .... hier ist meine volle stacktraceAmazon S3 Java SDK & Jackson Seltsame Ausnahme bei Produktion

StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exception 
java.lang.NoSuchMethodError: com.fasterxml.jackson.databind.ObjectMapper.enable([Lcom/fasterxml/jackson/core/JsonParser$Feature;)Lcom/fasterxml/jackson/databind/ObjectMapper; 
     at com.amazonaws.partitions.PartitionsLoader.<clinit>(PartitionsLoader.java:54) 
     at com.amazonaws.regions.RegionMetadataFactory.create(RegionMetadataFactory.java:30) 
     at com.amazonaws.regions.RegionUtils.initialize(RegionUtils.java:66) 
     at com.amazonaws.regions.RegionUtils.getRegionMetadata(RegionUtils.java:54) 
     at com.amazonaws.regions.RegionUtils.getRegion(RegionUtils.java:107) 
     at com.amazonaws.services.s3.AmazonS3Client.createSigner(AmazonS3Client.java:3288) 
     at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:3984) 
     at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1570) 
     at com.jajitech.web.xdata.amazon.s3.AmazonS3Storage.storeToMediaBucket(AmazonS3Storage.java:47) 
     at com.jajitech.web.xdata.saver.Saver.insertEntry(Saver.java:267) 
     at com.jajitech.web.xdata.saver.Saver.saveEntry(Saver.java:163) 
     at org.apache.jsp.saveEntry_jsp._jspService(saveEntry_jsp.java:53) 
     at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:111) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
     at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:411) 
     at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:473) 
     at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:377) 
     at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
     at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682) 
     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318) 
     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160) 
     at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734) 
     at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673) 
     at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99) 
     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174) 
     at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415) 
     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282) 
     at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459) 
     at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167) 
     at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201) 
     at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175) 
     at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235) 
     at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119) 
     at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284) 
     at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201) 
     at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133) 
     at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112) 
     at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) 
     at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561) 
     at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112) 
     at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117) 
     at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56) 
     at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137) 
     at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565) 
     at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545) 
     at java.lang.Thread.run(Thread.java:745) 
]] 
+1

Ist es möglich, dass eine Ihrer Abhängigkeiten (d. H. Die aws sdk) eine andere Version von jackson verwendet und diese außer Kraft gesetzt wird und die 'NoSuchMethodException' verursacht? Versuchen Sie, die Jackson-Abhängigkeit explizit vor allen anderen Abhängigkeiten zu setzen, und überprüfen Sie sie. –

+0

Überprüfen Sie Ihre Set-Region in der Produktion von 'aws configure' Befehl und verifizieren Sie es mit Ihrem localhost one – User528491

+0

Danke Jungs @Avihoo Ich habe das und es hat noch nicht funktioniert ,,,,, @ User528491 Ich habe den Eimer manuell erstellt und ich habe die client.setRegion (Region.getRegion (Regions.EU_WEST_1)); weil das die Region war, die ich während der Bucket-Erstellung angegeben habe. Was soll ich tun, wenn sie anders sind? – javalove

Antwort

-1

Ich habe es schließlich zu arbeiten. Wie Avhoo richtig gesagt hatte, hatte es mit Abhängigkeiten zu tun. Ich habe ein neues Maven-Projekt erstellt und einfach meine Quelldateien dorthin verschoben. Ich füge die pom.xml-Datei aktualisiert hinzu und lade maven die benötigten Bibliotheken herunter. Es funktionierte seither gut.