2015-04-23 4 views
0

Когда я пытаюсь реализовать следующий простой пример в jsp на Jetty Server: https://developers.google.com/maps/documentation/javascript/examples/icon-simple Я получаю java.io.UTFDataFormatException и на карте не отображается значок кода, который производит ошибку является:Невозможно реализовать простой пользовательский значок Google Maps в примере JSP

var image = 'images/beachflag.png'; 
var myLatLng = new google.maps.LatLng(-33.890542, 151.274856); 
var beachMarker = new google.maps.Marker({ 
    position: myLatLng, 
    map: map, 
    icon: image 
}); 

если я закомментировать переменную значок маркера, как показано ниже, то все работает отлично.

var image = 'images/beachflag.png'; 
var myLatLng = new google.maps.LatLng(-33.890542, 151.274856); 
var beachMarker = new google.maps.Marker({ 
    position: myLatLng, 
    map: map 
<!-- icon: image --> 
}); 

Хотя, конечно, отображается стандартный маркер google, а не пользовательский значок, который я хочу.

Это мой StackTrace с помощью пристани-Maven-плагин 9.2.10.v20150310:

[INFO] Started Jetty Server 
2015-04-23 19:32:35.640:WARN:oejs.ServletHandler:qtp1142653826-19: 
org.apache.jasper.JasperException: Unable to compile class for JSP 
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:579) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:405) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:349) 
    at org.eclipse.jetty.jsp.JettyJspServlet.service(JettyJspServlet.java:107) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808) 
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669) 
    at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:113) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) 
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) 
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) 
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) 
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) 
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) 
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) 
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) 
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) 
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) 
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215) 
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) 
    at org.eclipse.jetty.server.Server.handle(Server.java:497) 
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) 
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) 
    at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) 
    at java.lang.Thread.run(Thread.java:745) 
Caused by: 
java.io.UTFDataFormatException: Invalid byte 1 of 1-byte UTF-8 sequence. 
    at org.apache.jasper.xmlparser.UTF8Reader.invalidByte(UTF8Reader.java:621) 
    at org.apache.jasper.xmlparser.UTF8Reader.read(UTF8Reader.java:486) 
    at org.apache.jasper.xmlparser.XMLEncodingDetector.load(XMLEncodingDetector.java:961) 
    at org.apache.jasper.xmlparser.XMLEncodingDetector.skipString(XMLEncodingDetector.java:916) 
    at org.apache.jasper.xmlparser.XMLEncodingDetector.scanXMLDecl(XMLEncodingDetector.java:1164) 
    at org.apache.jasper.xmlparser.XMLEncodingDetector.getEncoding(XMLEncodingDetector.java:116) 
    at org.apache.jasper.xmlparser.XMLEncodingDetector.getEncoding(XMLEncodingDetector.java:104) 
    at org.apache.jasper.compiler.ParserController.determineSyntaxAndEncoding(ParserController.java:304) 
    at org.apache.jasper.compiler.ParserController.doParse(ParserController.java:183) 
    at org.apache.jasper.compiler.ParserController.parseDirectives(ParserController.java:117) 
    at org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:194) 
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:356) 
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:336) 
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:323) 
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:357) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:405) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:349) 
    at org.eclipse.jetty.jsp.JettyJspServlet.service(JettyJspServlet.java:107) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
    at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808) 
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669) 
    at org.springframework.orm.jpa.support.OpenEntityManagerInViewFilter.doFilterInternal(OpenEntityManagerInViewFilter.java:113) 
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76) 
    at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) 
    at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) 
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) 
    at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) 
    at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) 
    at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) 
    at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) 
    at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) 
    at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) 
    at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) 
    at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215) 
    at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) 
    at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) 
    at org.eclipse.jetty.server.Server.handle(Server.java:497) 
    at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) 
    at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) 
    at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) 
    at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) 
    at java.lang.Thread.run(Thread.java:745) 

Заранее спасибо за любые указатели!

Edit: Изменено StackTrace производства последней молы-сервер 9.2.10.v20150310

+0

[Джетти-8 является оконечный (Конец Жизнь)] (https://dev.eclipse.org/mhonarc/lists/jetty-announce/ms g00069.html) –

+0

Спасибо. Я изменил его до последней стабильной версии, по-прежнему той же проблемы. Хотя stacktrace немного изменились, я обновил его. – DemCore

ответ

0

Вы должны либо изменить путь к изображению или загрузить значок на свой собственный сервер.

Если вы не видите маркер, изображение может не найти.

Они используют относительный URL 'images/beachflag.png', который в данном примере указывают на:

https://google-developers.appspot.com/maps/documentation/javascript/examples/full/images/beachflag.png 

enter image description here


 function initialize() { 
 
     var myLatLng = new google.maps.LatLng(-33.890542, 151.274856); 
 

 
     var map = new google.maps.Map(document.getElementById("map-canvas"), { 
 
      center: myLatLng, 
 
      zoom: 10 
 
     }); 
 
     var image = 'https://google-developers.appspot.com/maps/documentation/javascript/examples/full/images/beachflag.png'; 
 

 
     var beachMarker = new google.maps.Marker({ 
 
      position: myLatLng, 
 
      map: map, 
 
      icon: image 
 
     }); 
 
     } 
 
     google.maps.event.addDomListener(window, 'load', initialize);
 html { 
 
     height: 100% 
 
     } 
 
     body { 
 
     height: 100%; 
 
     margin: 0; 
 
     padding: 0 
 
     } 
 
     #map-canvas { 
 
     height: 100% 
 
     }
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3"> 
 
</script> 
 
<div id="map-canvas"></div>

+0

Спасибо. Я уже убедился, что изображение можно найти, это на моем сервере. Когда я, например, меняю имя файла, чтобы изображение не было найдено, длительное исключение не существует. \t Но я получаю следующую короткую ошибку: \t '[INFO] Начал Jetty Server 23 апреля 2015 г. 8:31:04 PM org.apache.jasper.servlet.JspServlet serviceJspFile SEVERE: PWC6117: Файл« C% 3A% 5CUsers % 5CFerdinand% 5Cprojects% 5Cspring-hibernate-20120924% 5Csrc% 5Cmain% 5Cwebapp% 5Cview% 5Cmap% 5Cimages% 5CbeachflagXx.png "not found' – DemCore