Я действительно не уверен, что еще можно попробовать, любая помощь будет оценена.Спасибо
1) Я использую weblogic 10, плагин flashbuilder4 eclipse, все работает на windows xp.
2) Я развернул образцы blazeds tomcat на weblogic 10 и смог успешно привязатьего удаленное обслуживание нового проекта DataGrid в fb4, все работает отлично.
3) Затем я изменил примеры, чтобы использовать свой собственный класс Java.На последнем шаге привязки провайдера данных в fb4, когда я выбираю пункт назначения и нажимаю кнопку завершения, он говорит:
"com.hello.test.ProductSearch недоступен в указанном месте. Попробуйте выполнить импорт поОтмена выбора поиска продукта для поиска "
Я проверил, правильно ли развернуты файлы классов в weblogic, и http://localhost:7001/hello/messagebroker/amf не показывает ошибку.
Кроме того, когда я развертываю то же местоположение файла в Tomcat, он работает нормально.Итак, подведем итог: 1) Образец BlazeDS отлично работает как в weblogic10, так и в tomcat. 2) Мой com.hello.test.ProductSearch отлично работает в tomcat, но выдает ошибку выше в weblogic10.
Так что похоже проблема в weblogicразвертывание, я просто использую стандартное развертывание weblogic10 по умолчанию.Не уверен, в чем проблема, был в этом в течение нескольких дней.
------------------------------
remoting-config.xml
<adapters>
<adapter-definition id="java-object" class="flex.messaging.services.remoting.adapters.JavaAdapter" default="true"/>
</adapters>
<default-channels>
<channel ref="my-amf"/>
</default-channels>
<destination id="productsearch">
<properties>
<source>com.hello.test.ProductSearch</source>
</properties>
</destination>
services-config.xml
<services>
<service-include file-path="remoting-config.xml" />
<default-channels>
<channel ref="my-amf"/>
</default-channels>
</services>
<channels>
<channel-definition id="my-amf" class="mx.messaging.channels.AMFChannel">
<endpoint url="http://{server.name}:{server.port}/{context.root}/messagebroker/amf" class="flex.messaging.endpoints.AMFEndpoint"/>
<properties>
<polling-enabled>false</polling-enabled>
</properties>
</channel-definition>
</channels>
<logging>
<!-- You may also use flex.messaging.log.ServletLogTarget -->
<target class="flex.messaging.log.ConsoleTarget" level="Error">
<properties>
<prefix>[BlazeDS] </prefix>
<includeDate>false</includeDate>
<includeTime>false</includeTime>
<includeLevel>true</includeLevel>
<includeCategory>false</includeCategory>
</properties>
<filters>
<pattern>Endpoint.*</pattern>
<pattern>Service.*</pattern>
<pattern>Configuration</pattern>
</filters>
</target>
</logging>
<system>
<redeploy>
<enabled>true</enabled>
<watch-interval>20</watch-interval>
<watch-file>{context.root}/WEB-INF/flex/services-config.xml</watch-fi le>
<watch-file>{context.root}/WEB-INF/flex/remoting-config.xml</watch-fi le>
<touch-file>{context.root}/WEB-INF/web.xml</touch-file>
</redeploy>
</system>
ProductSearch.java
package com.hello.test;
import java.util.ArrayList;
import java.util.List;
public class ProductSearch
{
public AttributeVO[] search()
{
List<AttributeVO> retList = new ArrayList<AttributeVO>();
retList.add(new AttributeVO("one","two", "three","four"));
retList.add(new AttributeVO("five","six", "seven","eight"));
return retList.toArray(new AttributeVO[retList.size()]);
}
}
АтрибутVO.java
package com.hello.test;
import java.io.Serializable;
public class AttributeVO implements Serializable
{
static final long serialVersionUID = 1L;
private String val1;
private String val2;
private String val3;
private String val4;
public AttributeVO()
{}
etc... all get getter/setters
}