Хорошо, поэтому я делаю "простое" веб-приложение, используя технологии из этой темы, недавно я нашел http://www.adobe.com/devnet/flex/articles/flex_hibernate.html, поэтому я следую за ним и пытаюсь применить его к своему приложению, единственное отличие Я работаю на Mac и использую MAMP для базы данных (поэтому для меня нет командной строки).
Дело в том, что у меня проблемы с получением / подключением к базе данных.
У меня есть remoting-config.xml, persistance.xml, класс News.java (мой Entity), класс NewsService.java, класс News.as - все как в учебном пособии. У меня есть, конечно, эта строка в одном из моих .mxmls:
<mx:RemoteObject id="loaderService" destination="newsService" result="handleLoadResult(event)" fault="handleFault(event)" showBusyCursor="true" />
И мой remoting-config.xml выглядит так (хорошая часть этого):
<destination id="newsService">
<properties><source>com.gamelist.news.NewsService</source></properties>
</destination>
Служба новостей имеет метод:
public List<News> getLatestNews() {
EntityManagerFactory emf = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT);
EntityManager em = emf.createEntityManager();
Query findLatestQuery = em.createNamedQuery("news.findLatest");
List<News> news = findLatestQuery.getResultList();
return news;
}
И именованный запрос находится в классе News:
@Entity
@Table(name="GLT_NEWS")
@NamedQueries({
@NamedQuery(name="news.findLatest", query="from GLT_NEWS order by new_date_added limit 5 ")
})
handledLoadResult выглядит так:
private function handleLoadResult(ev:ResultEvent):void {
newsList = ev.result as ArrayCollection;
newsRecords = newsList.length;
}
Где:
[Bindable]
private var newsList:ArrayCollection = new ArrayCollection();
Но когда я пытаюсь вызвать:
loaderService.getLatestNews();
ничего не происходит, список новостей пуст.
Несколько вещей, на которые мне нужно указать:
1) как я уже сказал, я не устанавливал mysql вручную, но я использую MAMP (да, сервер работает), может ли это вызвать некоторые проблемы?
2) У меня уже есть база данных "gladm", и у меня есть таблица "GLT_NEWS" со всеми полями, это плохо?
По сути, вопрос в том, как мне отладить эту штуку, чтобы я мог найти ошибку, которую делаю? Я знаю, что loadData () выполняется (сделал trace ()), но я понятия не имею, что происходит с loaderService.getLatestNews () ...
@ РЕДАКТИРОВАТЬ: хорошо, я вижу, что я получаю ошибку в «обработчике ошибок», который говорит
"Error: Client.Error.MessageSend - Channel.Connect.Failed error NetConnection.Call.Failed: HTTP: Status 404: url: 'http://localhost:8080/WebContent/messagebroker/amf' - "
@ EDIT2: Хорошо, я решил проблему, так как оказалось, что мой ContextRoot был неверным, забавно то, что я не смог отредактировать его, перейдя в Свойства проекта-> Сервер Flex, так как он был недоступен для редактирования! Мне нужно было найти файл .flexProject и отредактировать его (очевидно, мой Flex Navigator не показывал его, и случайно заметил, что он фильтруется).