JSP GoogleMaps Taglib não encontrado, onde eu dava errado?
-
23-09-2019 - |
Pergunta
Estou tentando adicionar o Google Maps aos meus JSPs usando o GoogleMaps Taglib.
Eu adicionei isso ao meu maven pom
<dependency>
<groupId>com.lamatek</groupId>
<artifactId>googlemaps</artifactId>
<version>0.98c</version>
<scope>provided<>/scope
</dependency>
Isso então incluiu o googlemaps-0.98c
Biblioteca sob minhas bibliotecas de projeto em Netbeans, cliquei com o botão direito e selecionado Manually install artifact
e localizou o arquivo googlemaps.jar que eu havia baixado.
Eu então adicionei isso ao meu arquivo taglibs
<%@taglib prefix="googlemaps" uri="/WEB-INF/googlemaps" %>
E então incluía isso onde eu realmente quero mostrar um mapa no meu JSP
<googlemaps:map id="map" width="250" height="300" version="2" type="STREET"
zoom="12">
<googlemaps:key domain="localhost" key="xxxx"/>
<googlemaps:point id="point1" address="74 Connors Lane" city="Elkton"
state="MD" zipcode="21921" country="US"/>
<googlemaps:marker id="marker1" point="point1"/>
</googlemaps:map>
Mas quando carrego meu aplicativo, recebo o seguinte erro.
org.apache.jasper.JasperException: /jsp/dashboard.jsp(1,1) /jsp/common/taglibs.jsp(6,56) PWC6117: File "/WEB-INF/googlemaps" not found
root cause
org.apache.jasper.JasperException: /jsp/common/taglibs.jsp(6,56) PWC6117: File "/WEB-INF/googlemaps" not found
Eu perdi algo simples? Não consigo identificar o que fiz de errado até agora ..
Solução
Geralmente quando você faz isso:
<%@taglib prefix="googlemaps" uri="/WEB-INF/googlemaps" %>
Você está basicamente tentando dizer "a pasta /web -inf /googlemaps possui vários arquivos .tag para uso" - o que você não tem.
Basta navegar na documentação confirma isso - diz que você deve estar usando isso (observe o uso da extensão do TLD):
<%@ taglib uri="/WEB-INF/googlemaps.tld" prefix="googlemaps" %>
Fonte: http://www.lamatek.com/googlemaps/documentation.jsp#installation
Outras dicas
Se você definir o escopo como fornecido em seu POM, ele não estiver incluído no arquivo de guerra e o taglib não será encontrado. Você deve alterar o escopo para compilar ou tempo de execução.
O URI não deve ser /web-inf/googlemaps.tld. Deve corresponder ao valor no <uri>
Tag no googlemaps.tld.
Abra o googlemaps.jar, encontre o googlemaps.tld e encontre o <uri>
marcação. Esse é o URI que você precisa.
ATUALIZAR:
Acabei de baixar o googlemaps.jar. Estou incorreto; O URI é de fato <uri>/WEB-INF/googlemaps.tld</uri>
.
Isso sugere que você precisa extrair o arquivo googlemaps.tld e colocá-lo em /web-inf em seu contexto da web, seja guerra ou explodido.