2012-06-09 1 views
2

Я пытаюсь написать простой веб-сервис весеннего отдыха, так как я не знаком с maven (и потому, что maven обычно не может ничего делать - проблема с подключением), поэтому я пытаюсь создать ant build сейчас. Теперь сборка в порядке, и служба может работать. Но если настойчивое функция срабатывает, она подскажет:Администратор сущности не был инъецирован: JAR Spring Aspects сконфигурирован как библиотека AJC/AJDT-аспектов?

01:48:39 Handler execution resulted in exception - forwarding to resolved error view: ModelAndView: reference to view with name 'uncaughtException'; model is {exception=java.lang.IllegalStateException: Entity manager has not been injected (is the Spring Aspects JAR configured as an AJC/AJDT aspects library?)} -org.springframework.web.servlet.DispatcherServlet 
java.lang.IllegalStateException: Entity manager has not been injected (is the Spring Aspects JAR configured as an AJC/AJDT aspects library?) 
    at com.books.domain.UserInfo.entityManager(UserInfo.java:96) 
    at com.books.domain.UserInfo.findUserByNamePassword(UserInfo.java:157) 
    at com.books.web.UserController.register(UserController.java:28) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
    at java.lang.reflect.Method.invoke(Unknown Source) 
    at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:213) 
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:126) 
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:96) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:617) 
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:578) 

Мой муравей build.xml:

<target name="compile" depends="init" description="compile the source "> 
    <!--<javac srcdir="${src}" 
    debug="on" 
    destdir="${build}" 
    classpathref="compile.classpath" 
    includeantruntime="false"/>--> 
    <iajc source ="1.6" target="1.6" sourceroots="src/main/java" destDir="src/main/webapp/WEB-INF/classes" showweaveinfo="true" verbose="true"> 
     <classpath> 
      <path refid="compile.classpath"/> 
      <path refid="aspectj.classpath"/> 
     </classpath> 
    </iajc> 
</target> 

Мой applicationContext.xml:

<bean class="org.springframework.orm.jpa.JpaTransactionManager" id="transactionManager"> 
    <property name="entityManagerFactory" ref="entityManagerFactory"/> 
</bean> 
<tx:annotation-driven mode="aspectj" transaction-manager="transactionManager"/> 
<bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" id="entityManagerFactory"> 
    <property name="dataSource" ref="dataSource"/> 
</bean> 

Любая помощь будет высоко оценен , Благодаря!

+0

«и потому, что специалист, как правило, не может ЕТ все сделано» хахахаха, ты сделал мой день. Знаете ли вы, что тысячи программных проектов все время используют maven? За последние 5 лет я не работал в одном проекте, который не был построен с maven. –

+1

Привет, Шон, любая идея помочь? Я просто имею в виду, что моя сеть плохая, и maven нужно загрузить слишком много артефактов из своего центрального хранилища. Используя ant, я могу загрузить их вручную (с помощью многопоточного инструмента загрузки), так что это быстро. –

ответ

1

Решено решить эту проблему с помощью ROO и maven pom. Слишком меньше информации о том, как использовать Ant build.

+0

Я сделал сборку муравьев без мусора проекта roo, если кто-то хочет решение, я мог бы написать его. – peterh

1

Учитывая, что переход на Roo на самом деле не является решением, но обходным путем, я хочу поделиться своим опытом по этой проблеме.

Есть 2 вещи, которые нужно проверить:

  1. Вы должны скомпилировать классы с помощью AspectJ. Плагин Maven aspectj предоставляет это требование.
  2. Ваш класс объектов должен быть аннотированный с @Configurable
3

Я нашел решение:

Это правильная iajc задача

<iajc source ="1.6" target="1.6" sourceroots="src/main/java" destDir="src/main/webapp/WEB-INF/classes" showweaveinfo="true" verbose="true"> 
    <classpath> 
     <path refid="compile.classpath"/> 
     <path refid="aspectj.classpath"/> 
    </classpath> 
    <aspectpath> 
     <pathelement location="${workdir}/WEB-INF/lib/spring-aspects-3.2.6.RELEASE.jar" /> 
    </aspectpath> 
</iajc> 
+0

ЗДЕСЬ - это рабочее решение! Мне жаль, что я могу только поддержать это за один раз! Спасибо! – peterh