2011-08-08 64 views
0

我目前正在编写一个小程序,并希望将Blazeds与Flex结合使用。 Blazeds和我的MySQL数据库之间的连接工作正常,但是当我尝试通过运行Catalina服务器上的RemoteObject进行连接时,我总是收到一条错误消息:与blazeds Flex mySQL db连接

[RPC Fault faultString =“没有ID'employeeService'注册任何服务“。 faultCode =“Server.Processing”faultDetail =“null”] at mx.rpc :: AbstractInvoker/http://www.adobe.com/2006/flex/mx/internal :: faultHandler()[E:\ dev \ 3.0.x \ frameworks \ projects \ rpc \ src \ mx \ rpc \ AbstractInvoker.as:216] at mx.rpc :: Responder/fault()[E:\ dev \ 3.0.x \ frameworks \ projects \ rpc \ src \ mx \ rpc \ Responder.as:49] at mx.rpc :: AsyncRequest/fault()[E:\ dev \ 3.0.x \ frameworks \ projects \ rpc \ src \ mx \ rpc \ AsyncRequest.as: 103] at NetConnectionMessageResponder/statusHandler()在mx.messaging :: MessageResponder/status([E:\ dev \ 3.0.x \ frameworks \ projects \ rpc \ src \ mx \ messaging \ channels \ NetConnectionChannel.as:523] )[E:\ dev \ 3.0.x \ frameworks \ projects \ rpc \ src \ mx \ messaging \ MessageResponder.as:222]

我检查了remoting-config文件和dest ination id在那里。是否需要配置catalina?

+0

您是否在修改配置文件后重新启动服务器? – dtuckernet

回答

0

只是几件事我能想到的...

  • 确保您的Flex项目设置正确引用您的服务器。项目 - >属性 - > Flex服务器。
  • 在配置服务器方面,您是否将flex-messaging和blazeds jar添加到您的项目或服务器库中?
  • 尽管听起来很愚蠢,但它实际上解决了以往对我来说这些问题,请务必在完成这些类型的更改后重新启动服务器,并清理项目,服务器和服务器工作目录(I “M通过月食我的Tomcat服务器)
  • 如果你继续运行到问题,并相信它可能是配置上这样做,使用turnkey
+0

我检查了我的flex应用程序的服务器配置,清理了blazeds java应用程序并启动并重新启动了我的apache服务器。顺便说一下,我已经使用了交钥匙工程。这有点好奇,但如果我尝试连接到提供的hsqldb,我会将每个数据都传输到我想要的Flex应用程序中。不管怎么说,还是要谢谢你。 –

3

使用Spring-FLEX/MySQL的/ BlazeDS的4

在库需要罐子

sping-flex-core-1.5 
mysql-connector-java-5.1.10 
org.springframework.beans-3.0.5.RELEASE 
org.springframework.context-3.0.5.RELEASE 
org.springframework.jdbc-3.0.5.RELEASE..etc 

创建雇员VO的Actionscript

[Bindable] 
[RemoteClass (alias="com.model.employee.Employee")] 
public class Employee 

爪哇侧封装com.model.employee;

Employee.java

EmployeeService.java(接口).. getEmployeeById(INT ID)

EmployeeServiceImpl.java

@Service("employeeService") 
@RemotingDestination(channels = { "my-amf", "my-secure-amf" }) 
public class EmployeeServiceImpl implements EmployeeService { 

private final DataSource dataSource; 

public UserServiceImpl(DataSource dataSource) { 
    this.dataSource = dataSource; 
} 

@RemotingInclude 
public Employee getEmployeeById(int id) { 
    Employee employee= new Employee(); 
    Connection c = null; 
    try { 
     c = this.dataSource.getConnection(); 
     PreparedStatement ps = c.prepareStatement("SELECT * FROM employee WHERE employee_id=?"); 
     ps.setInt(1, id); 
     ResultSet rs = ps.executeQuery(); 
     if (rs.next()) { 
      employee= new Employee(); 
      employee.setEmployeeId(rs.getInt("employee_id")); 
      employee.setEmployeeName(rs.getString("employee_name")); 
     } 
    } catch (Exception e) { 
     e.printStackTrace(); 
     throw new RuntimeException(e); 
    } 
    return employee; 
} 

地方在遵守类WEB-INF /类

WEB-INF/appicationContext.xml

<beans xmlns="http://www.springframework.org/schema/beans" 
xmlns:flex="http://www.springframework.org/schema/flex" 
xmlns:context="http://www.springframework.org/schema/context" 
xmlns:tx="http://www.springframework.org/schema/tx" 
xmlns:jdbc="http://www.springframework.org/schema/jdbc" 

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation=" 
    http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans-3.0.xsd 
    http://www.springframework.org/schema/flex 
    http://www.springframework.org/schema/flex/spring-flex-1.5.xsd 
    http://www.springframework.org/schema/context 
    http://www.springframework.org/schema/context/spring-context-3.0.xsd 
    http://www.springframework.org/schema/tx 
    http://www.springframework.org/schema/tx/spring-tx-3.0.xsd 
    http://www.springframework.org/schema/jdbc 
    http://www.springframework.org/schema/jdbc/spring-jdbc-3.0.xsd"> 

<flex:message-broker> 
    <flex:remoting-service default-channels="my-amf" /> 
    </flex:message-broker> 

<context:annotation-config /> 
<context:component-scan base-package="com.model" /> 

<tx:annotation-driven /> 

<bean id="employeeService" class="com.model.employee.EmployeeServiceImpl"> 
    <constructor-arg ref="dataSource" />   
</bean> 

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"> 

    <property name="driverClassName" value="com.mysql.jdbc.Driver"/> 
    <property name="url" 
    value="jdbc:mysql://dxfcmm:3306/eunice? autoReconnect=true&amp;zeroDateTimeBehavior=convertToNull"/> 
    <property name="username" value="XXX" /> 
    <property name="password" value="YYY" /> 
    <property name="validationQuery" value="SELECT 1"/> 
</bean> 

不需要remote-config。xml

启动tomcat,应该看到 信息:已成功启动远程处理目标'employeeService' 。

IN MMXL [Bindable] private var empl:Employee;

使用resultHandler定义RemoteObject roEmp 调用roEmp.getEmployeeById(id) empl = event.result as Employee;