1

我得到以下异常:

Build path is incomplete. Cannot find class file for com/hexgen/core/IHexGenDictionaryBased

这是我得到上述异常的行:

<context:component-scan base-package="com.hexgen.api.facade" />

这是完整的 XML 文件:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xmlns:sec="http://www.springframework.org/schema/security"
    xsi:schemaLocation="
                http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
                http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
                http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd
                http://www.springframework.org/schema/security http://www.springframework.org/schema/security/spring-security-3.1.xsd">

    <sec:global-method-security pre-post-annotations="enabled"
                                secured-annotations="enabled"
                                authentication-manager-ref="authenticationManager"
                                proxy-target-class="true">
        <sec:expression-handler ref="expressionHandler"/>
    </sec:global-method-security>

    <bean id="expressionHandler" class="org.springframework.security.access.expression.method.DefaultMethodSecurityExpressionHandler">
        <property name="permissionEvaluator" ref="hexgenPermissionEvaluator" />
    </bean>

    <bean id="hexgenPermissionEvaluator" class="com.hexgen.api.facade.security.HexGenPermissionEvaluator"/>

    <context:component-scan base-package="com.hexgen.api.facade" />
    <mvc:annotation-driven />
    <context:annotation-config />
</beans>

谁能解释我必须做些什么来解决这个问题?

4

2 回答 2

1

我认为您需要让组件扫描查看 api 和核心的通用包。

更改<context:component-scan base-package="com.hexgen.api.facade" /><context:component-scan base-package="com.hexgen" />,它应该拿起它找不到的核心类。

于 2013-05-09T11:31:54.197 回答
1

您需要确保无论com/hexgen/core/IHexGenDictionaryBased类(或其 .class 文件)在哪里,该位置都需要在您的构建路径(或类路径)上。例如,如果它在其他一些 hexgen-core.jar 中,请确保将其添加到您的构建路径(使用 Eclipse)或类路径(使用-cp参数)。

如果该文件位于其他项目目录中,则将其添加/src为 Spring 项目的源目录,然后所有core类将自动位于您的类路径中。

于 2013-05-09T11:42:11.200 回答