我的公司正在研究使用 Adobe CQ5 作为新的内容管理系统,我的任务是弄清楚如何用它来做某些事情。
我们想做的一件事是使用我们为 JSP 页面内的 scriptlet 中的旧 Web 应用程序创建的一些 JAR,可能会调用服务或其他东西。
我考虑过使用 OSGi 捆绑包来做这件事,但我认为这不是我们想要做的。现在,我无法确定将要在我们的 JSP 文件中使用的外部库的位置。
我创建了一个只有一个泛型类的 JAR
package org.company.test;
import java.lang.String;
public class TestService{
private String myString;
public TestService(String input){myString = input;}
public String getMyString(){return myString;}
}
那是罐子里唯一的东西。
我试着把它放在/crx-quickstart/server/lib/common
该文件夹的自述文件说
“将库放在应该在所有 Web 应用程序和服务器之间共享的文件夹中。”
但是当我尝试访问它时,我的 JSP 文件有一些问题。这是整个 JSP 文件:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
<%%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ TR/html4/loose.dtd">
<%%>
<%@page session="false"%>
<%@taglib prefix="sling" uri="http://sling.apache.org/taglibs/sling/1.0"%>
<sling:defineObjects/>
<%@ page import="javax.jcr.Repository, javax.jcr.Session, javax.jcr.SimpleCredentials, javax.jcr.Node, javax.jcr.NodeIterator,
java.net.URLEncoder, java.util.List, java.util.Iterator, javax.jcr.Value, javax.jcr.RepositoryException,org.company.test.TestService;"%>
<html>
<head>
<style type="text/css"><jsp:include page="/content/myBlog/style.css"/></style>
<!--<link rel="stylesheet" href="/content/myBlog/style.css" type="text/css">-->
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<%
TestService jServ = new TestService("TigerBlood");
String returnValue = "Failed";
if(jServ!=null){
returnValue = jServ.getMyString();
}
%>
<title><%= returnValue %></title>
</head>
<body>
<a href="/content/myBlog.html" class="imgcontainer"><img src="/apps/myBlog/myBlog.png" width="80px" height="60px" border="0" alt="myBlog" /></a>
<h1><%= returnValue %></h1>
<div class="body">
<br>
<a href="/apps/myBlog/comment.html">Comment</a>
</div>
</body>
</html>
当我在浏览器中导航到它时,我收到以下错误:
Unable to compile class for JSP: An error occurred at line: 16 in the generated java file Only a type can be imported. org.company.test.TestService resolves to a package
An error occurred at line: 17 in the jsp file: /apps/myBlog/test.jsp TestService cannot be resolved to a type
14: <!--<link rel="stylesheet" href="/content/myBlog/style.css" type="text/css">-->
15: <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
16: <%
17: TestService jServ = new TestService("TigerBlood");
18: String returnValue = "Failed";
19: if(jServ!=null){ 20: returnValue = jServ.getMyString();
An error occurred at line: 17 in the jsp file: /apps/myBlog/test.jsp TestService cannot be resolved to a type
14: <!--<link rel="stylesheet" href="/content/myBlog/style.css" type="text/css">-->
15: <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
16: <%
17: TestService jServ = new TestService("TigerBlood");
18: String returnValue = "Failed";
19: if(jServ!=null){
20: returnValue = jServ.getMyString();
我可以通过将导入更改为 com.company.test.* 来修复关于包的第一个错误,但它不能修复其他两个错误。
我知道这不是使用服务的最佳“实践”,但我希望只是获得一个概念证明,表明我们可以根据需要使用这些库。任何帮助,将不胜感激。