繁体   English   中英

org.apache.commons.mail,version = [1.3,2)-CQ5(AEM)中无法解决的问题

[英]org.apache.commons.mail,version=[1.3,2) — Cannot be resolved issue in CQ5(AEM)

我想使用Eclipse Maven多模块项目从Adobe CQ5发送电子邮件。 我的想法是创建一个servlet来编写用于邮件功能的代码,然后在表单组件中调用该servlet以提供输入并将邮件发送给管理员。因此,我在Eclipse项目中创建了一个servlet,并遵循了所有本教程中的步骤,其中建议了以下JAR:

import javax.jcr.Node;
import javax.jcr.Session;
import javax.mail.internet.InternetAddress;
import javax.servlet.Servlet;
import javax.servlet.ServletException;
import org.apache.commons.mail.HtmlEmail;
import org.apache.felix.scr.annotations.Component;
import org.apache.felix.scr.annotations.Reference;
import org.apache.felix.scr.annotations.Service;
import org.apache.felix.scr.annotations.sling.SlingServlet;
import org.apache.sling.api.SlingHttpServletRequest;
import org.apache.sling.api.SlingHttpServletResponse;
import org.apache.sling.api.servlets.SlingAllMethodsServlet;
import org.apache.sling.jcr.api.SlingRepository;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.day.cq.mailer.MessageGateway;
import com.day.cq.mailer.MessageGatewayService;

我可以看到构建成功并且该软件包已安装在http:// localhost:4502 / system / console / bundles中 但是在系统/控制台/捆绑包中,软件包处于已安装状态,而不是处于活动状态,无法使用。

要在扩展问题时验证此问题,出现此错误:

org.apache.commons.mail,version=[1.3,2) -- Cannot be resolved.

该软件包的完整说明是:

Exported Packages   aem.flightdeck.com.flightdeck.core,version=1.0
Imported Packages   aem.flightdeck.com.flightdeck.core,version=[1.0,1.1) from aem.flightdeck.com.flightdeck.core (408)
com.day.cq.mailer,version=[5.8,6) from com.day.cq.cq-mailer (267)
javax.jcr,version=[2.0,3) from org.apache.sling.jcr.jcr-wrapper (106)
javax.mail.internet,version=[1.4,2) from javax.mail (178)
javax.servlet from org.apache.felix.http.servlet-api (29)
org.apache.commons.mail,version=[1.3,2) -- Cannot be resolved
org.apache.sling.api,version=[2.3,3) from org.apache.sling.api (184)
org.apache.sling.api.request,version=[2.4,3) from org.apache.sling.api (184)
org.apache.sling.api.resource,version=[2.5,3) from org.apache.sling.api (184)
org.apache.sling.api.servlets,version=[2.1,3) from org.apache.sling.api (184)
org.apache.sling.commons.osgi,version=[2.2,3) from org.apache.sling.commons.osgi (56)
org.apache.sling.jcr.api,version=[2.2,3) from org.apache.sling.jcr.api (104)
org.apache.sling.settings,version=[1.3,2) from org.apache.sling.settings (13)
org.osgi.service.event,version=[1.2,2) from org.apache.felix.eventadmin (51)
org.slf4j,version=[1.5,2) from slf4j.api (14)
Manifest Headers    Bnd-LastModified: 1427608012083
Build-Jdk: 1.7.0_71
Built-By: ajena
Bundle-Description: Core bundle for flightdeck
Bundle-ManifestVersion: 2
Bundle-Name: flightdeck - Core
Bundle-SymbolicName: aem.flightdeck.com.flightdeck.core
Bundle-Version: 1.0.1.SNAPSHOT
Created-By: Apache Maven Bundle Plugin
Export-Package: aem.flightdeck.com.flightdeck.core; version="1.0"
Import-Package: aem.flightdeck.com.flightdeck.core; version="[1.0, 1.1)", com.day.cq.mailer; version="[5.8, 6)", javax.jcr; version="[2.0, 3)", javax.mail.internet; version="[1.4, 2)", javax.servlet, org.apache.commons.mail; version="[1.3, 2)", org.apache.sling.api; version="[2.3, 3)", org.apache.sling.api.request; version="[2.4, 3)", org.apache.sling.api.resource; version="[2.5, 3)", org.apache.sling.api.servlets; version="[2.1, 3)", org.apache.sling.commons.osgi; version="[2.2, 3)", org.apache.sling.jcr.api; version="[2.2, 3)", org.apache.sling.settings; version="[1.3, 2)", org.osgi.service.event; version="[1.2, 2)", org.slf4j; version="[1.5, 2)"
Manifest-Version: 1.0
Provide-Capability: osgi.service; effective:=active; objectClass="java.lang.Runnable"; scheduler.expression="*/30 * * * * ?"; scheduler.concurrent=false; service.vendor=Adobe
Require-Capability: osgi.ee; filter:="(&(osgi.ee=JavaSE)(version=1.6))"
Service-Component: OSGI-INF/aem.flightdeck.com.flightdeck.core.impl.schedulers.SimpleScheduledTask.xml, OSGI-INF/aem.flightdeck.com.flightdeck.core.impl.listeners.SimpleResourceListener.xml, OSGI-INF/aem.flightdeck.com.flightdeck.core.impl.filters.LoggingFilter.xml, OSGI-INF/aem.flightdeck.com.flightdeck.core.impl.servlets.EmailServlet.xml, OSGI-INF/aem.flightdeck.com.flightdeck.core.impl.HelloServiceImpl.xml, OSGI-INF/aem.flightdeck.com.flightdeck.core.impl.servlets.SimpleServlet.xml
Tool: Bnd-2.3.0.201405100607

当我检查AEM作者的error.log文件时,出现以下错误消息:

29.03.2015 11:16:55.235 *INFO* [FelixDispatchQueue] org.apache.felix.framework FrameworkEvent PACKAGES REFRESHED
29.03.2015 11:16:55.235 *INFO* [OsgiInstallerImpl] org.apache.sling.installer.core.impl.tasks.BundleStartTask Could not start bundle aem.flightdeck.com.flightdeck.core [408]. Reason: {}. Will retry.
org.osgi.framework.BundleException: Unresolved constraint in bundle aem.flightdeck.com.flightdeck.core [408]: Unable to resolve 408.96: missing requirement [408.96] osgi.wiring.package; (&(osgi.wiring.package=org.apache.commons.mail)(version>=1.3.0)(!(version>=2.0.0)))
    at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3980)
    at org.apache.felix.framework.Felix.startBundle(Felix.java:2043)
    at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:976)
    at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:963)
    at org.apache.sling.installer.core.impl.tasks.BundleStartTask.execute(BundleStartTask.java:93)
    at org.apache.sling.installer.core.impl.OsgiInstallerImpl.executeTasks(OsgiInstallerImpl.java:733)
    at org.apache.sling.installer.core.impl.OsgiInstallerImpl.run(OsgiInstallerImpl.java:247)
    at java.lang.Thread.run(Unknown Source)
29.03.2015 11:16:55.275 *INFO* [OsgiInstallerImpl] org.apache.sling.installer.core.impl.tasks.BundleStartTask Could not start bundle aem.flightdeck.com.flightdeck.core [408]. Reason: {}. Will retry.
org.osgi.framework.BundleException: Unresolved constraint in bundle aem.flightdeck.com.flightdeck.core [408]: Unable to resolve 408.96: missing requirement [408.96] osgi.wiring.package; (&(osgi.wiring.package=org.apache.commons.mail)(version>=1.3.0)(!(version>=2.0.0)))
    at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:3980)
    at org.apache.felix.framework.Felix.startBundle(Felix.java:2043)
    at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:976)
    at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:963)
    at org.apache.sling.installer.core.impl.tasks.BundleStartTask.execute(BundleStartTask.java:93)
    at org.apache.sling.installer.core.impl.OsgiInstallerImpl.executeTasks(OsgiInstallerImpl.java:733)
    at org.apache.sling.installer.core.impl.OsgiInstallerImpl.run(OsgiInstallerImpl.java:247)
    at java.lang.Thread.run(Unknown Source)

在我的POM.xml文件中,添加了依赖项,如下所示:

<dependency>    
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-email</artifactId>
    <version>1.3.2</version>
</dependency>

在依赖性文件夹-.m2 \\ repository \\ commons-email \\ commons-email文件夹中,已经下载了commons-email 1.3.2.jar。

任何人都可以分享解决此问题的任何建议,或者提出在不使用工作流程的情况下单击即可从CQ5组件发送电子邮件的建议吗?

谢谢你快速的回复! 我得到了解决。 我什至尝试直接在控制台中安装jar,但没有帮助。 我只是将依赖关系版本更改为1.2,如下所述,它可以正常工作

<dependency>    
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-email</artifactId>
    <version>1.2</version>
</dependency>

AFAIK这是由于您的依赖性不在CQ Server上而导致的错误,它在您本地而不在CQ Server上。 您可以尝试一件事。 下载此依赖项,或者下载.m2文件夹中的依赖关系。 与使用捆绑软件相同,将其安装在来自http:// localhost:4502 / system / console / bundles的捆绑软件下。 在Maven中,还可以通过其他方式将此依赖项与build一起发送到CQ服务器,为此,您需要检查我们可以使用的依赖项下的不同范围。

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM