自定义文档过滤器 - 启动连接器时ClassNotFoundException

时间:2013-11-21 09:59:35

标签: google-search-appliance documentfilter

我正在开发自定义文档过滤器。到目前为止,我已经在eclipse中创建了一个项目,添加了必要的jar文件,并使用我自己的文档过滤器成功构建了一个jar文件。

我错过了让连接器找到类的步骤?

在文件'connectorInstance.xml'中配置文档过滤器时出现问题,似乎在类路径中找不到jar文件......

Java包具有以下类路径:

com.google.enterprise.connector.util.filter.DocFilterWildCardSearch

或尝试了以下路径

com.kapsch.gsa.filter.DocFilterWildCardSearch

我将'DocFilterWildCardSearch.jar'文件复制到以下路径中:

C:\Program Files\GoogleConnectors\GSAConnectors1\Tomcat\webapps\connector-manager\WEB-INF\lib

重新启动连接器并收到以下错误消息:

Nov 20, 2013 4:50:29 PM [Init] com.google.enterprise.connector.servlet.StartUp doStartup
SEVERE: Connector Manager Startup failed: 
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'DocumentFilters' defined in ServletContext resource [/WEB-INF/documentFilters.xml]: Cannot create inner bean 'asfsdf' of type [com.kapsch.gsa.filter.DocFilterWildCardSearch] while setting constructor argument with key [0]; nested exception is org.springframework.beans.factory.CannotLoadBeanClassException: Cannot find class [com.kapsch.gsa.filter.DocFilterWildCardSearch] for bean with name 'asfsdf' defined in ServletContext resource [/WEB-INF/documentFilters.xml]; nested exception is java.lang.ClassNotFoundException: com.kapsch.gsa.filter.DocFilterWildCardSearch
 at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:230)
 at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:117)

文档过滤器的配置文件:connectorInstance.xml

<?xml version="1.0"?>
<beans>
    <bean class="com.example.connector.HelloWorldConnector" id="helloworld-connector"> </bean> 
    <bean class="com.google.enterprise.connector.util.filter.DocumentFilterChain" id="DocumentFilters"> 
    <constructor-arg>
    <list>
        <bean class="com.kapsch.gsa.filter.DocFilterWildCardSearch" id="asfsdf"> 
             <property value="Author" name="propertyName"/> 
             <property value="Roli" name="propertyValue"/> 
             <property value="false" name="overwrite"/> 
        </bean>
     </list>
     </constructor-arg> 
</bean>
</beans>

2 个答案:

答案 0 :(得分:0)

您的设置应该放在documentFilters.xml文件中,而不是连接器实例文件中。

Google在此处获得了有关该主题here的支持文章。

看起来你正在尝试nGram。我已经有了一个过滤器,我已经开放了。如果你愿意,请给我留言。

最后,有传言说7.2会有疯狂的梳理。我们肯定不会知道它直到它出来。

答案 1 :(得分:0)

您是否可以在文件过滤器jar文件中包含jar tf的输出?

迈克尔是正确的,你在documentfilters.xml中配置doc过滤器。