是什么导致我的Sling模型无法注册?

时间:2018-08-24 15:02:23

标签: maven apache-felix osgi-bundle sling sling-models

我的简单Sling模型类没有出现在open('input.txt', 'r', encoding='utf-16') 下的Apache Sling控制台中,尽管捆绑包位于/system/console/adapters下(并且我用/system/console/bundles注释的所有服务类都已成功注册)。我正在使用@Component插件来自动选择模型类的名称,但是如果我在ModelsScannerPlugin中手动指定包,它也不会出现。

运行<Sling-Model-Packages>mvn clean install -PautoInstallBundle结尾,但显示以下消息:

BUILD SUCCESS

Job.java

[INFO] --- bnd-maven-plugin:4.0.0:bnd-process (run-bnd) @ core ---
[INFO] Unable to determine whether the meta annotation javax.inject.Qualifier applied to type spinner.slingproject.Job provides bundle annotations as it is not on the project build path. If this annotation does provide bundle annotations then it must be present on the build path in order to be processed

pom.xml

package spinner.slingproject;

import org.apache.sling.api.resource.Resource;
import org.apache.sling.models.annotations.Model;
import org.apache.sling.models.annotations.injectorspecific.ValueMapValue;

@Model(adaptables=Resource.class)
public class Job {

    @ValueMapValue(name="jcr:title")
    String jcrTitle;

    public String getJcrTitle()
    {
        return jcrTitle + " the title";
    }


}

我想象我的<?xml version="1.0" encoding="ISO-8859-1"?> <!-- Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. --> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>spinner.slingproject</groupId> <artifactId>core</artifactId> <version>0.0.1-SNAPSHOT</version> <name>Slingproject Core</name> <description>Slingproject core bundle</description> <build> <plugins> <plugin> <groupId>biz.aQute.bnd</groupId> <artifactId>bnd-maven-plugin</artifactId> <version>4.0.0</version> <extensions>true</extensions> <configuration> <instructions> <_plugin>org.apache.sling.bnd.models.ModelsScannerPlugin</_plugin> </instructions> </configuration> <dependencies> <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.bnd.models</artifactId> <version>1.0.0</version> </dependency> </dependencies> <executions> <execution> <id>run-bnd</id> <goals> <goal>bnd-process</goal> </goals> </execution> </executions> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <version>2.6</version> <configuration> <archive> <manifestFile>${project.build.outputDirectory}/META-INF/MANIFEST.MF</manifestFile> </archive> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.7.0</version> <configuration> <source>8</source> <target>8</target> </configuration> </plugin> <plugin> <groupId>org.apache.sling</groupId> <artifactId>maven-sling-plugin</artifactId> <version>2.3.6</version> <configuration> <slingUrl>http://localhost:8080/system/console</slingUrl> <user>*removed*</user> <password>*removed*</password> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>org.osgi</groupId> <artifactId>org.osgi.compendium</artifactId> <version>4.2.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.osgi</groupId> <artifactId>org.osgi.core</artifactId> <version>4.2.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>javax.jcr</groupId> <artifactId>jcr</artifactId> <version>2.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.api</artifactId> <version>2.9.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.6</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.osgi</groupId> <artifactId>org.osgi.annotation.versioning</artifactId> <version>1.0.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.osgi</groupId> <artifactId>org.osgi.service.component.annotations</artifactId> <version>1.3.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>org.osgi</groupId> <artifactId>org.osgi.service.metatype.annotations</artifactId> <version>1.3.0</version> <scope>provided</scope> </dependency> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.query</artifactId> <version>3.0.0</version> </dependency> <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.servlets.annotations</artifactId> <version>1.0.0</version> </dependency> <dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.models.api</artifactId> <version>1.3.6</version> <scope>provided</scope> </dependency> </dependencies> <profiles> <profile> <id>autoInstallBundle</id> <build> <plugins> <plugin> <groupId>org.apache.sling</groupId> <artifactId>maven-sling-plugin</artifactId> <executions> <execution> <id>install-bundle</id> <goals> <goal>install</goal> </goals> </execution> </executions> </plugin> </plugins> </build> </profile> </profiles> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> </project> 中有一个错误,或者与pom.xml的一些未记录的不兼容(大多数示例似乎都使用bnd-maven-plugin,尽管Sling文档表明两者都兼容)。

EDIT

这是MANIFEST.MF:

maven-bundle-plugin

由此可见,Manifest-Version: 1.0 Bnd-LastModified: 1535557283139 Bundle-ManifestVersion: 2 Bundle-Name: Slingproject Core Bundle-SymbolicName: core Bundle-Version: 0.0.1.201808291541 Created-By: 1.8.0_152 (Oracle Corporation) Import-Package: org.apache.sling.api.resource;version="[2.8,3)",org.ap ache.sling.models.annotations;version="[1.5,2)",org.apache.sling.mode ls.annotations.injectorspecific;version="[1.1,2)" Private-Package: spinner.slingproject Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.8))" Tool: Bnd-4.0.0.201805111645 下没有创建任何条目。

0 个答案:

没有答案