小编Mar*_*itt的帖子

调试AIR:ADL无法启动

尝试使用调试AIR应用程序时,我遇到了麻烦adl.

虽然adl成功启动,但应用程序永远不会出现在屏幕上/启动.

例如:

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009" 
                       xmlns:s="library://ns.adobe.com/flex/spark" 
                       xmlns:mx="library://ns.adobe.com/flex/mx"
                       width="400" height="400"
                       preinitialize="trace('hello')">
    <s:Label text="Hello, world" />
</s:WindowedApplication>
Run Code Online (Sandbox Code Playgroud)

启动此功能时,trace永远不会执行,并且应用程序永远不会出现在屏幕上.

其他兴趣点:

  • adl调试程序启动(即,我看到在我停靠的图标)
  • 我尝试使用AIR 2.6和AIR 2.7中的adt
  • 曾经在我的机器上工作,并突然停止(见下文)
  • 如果我从Flash Builder启动,或adt直接调用命令行,则没有任何区别
  • 我在Mac上运行OSX 10.6.7
  • 在此工作停止后,我尝试安装FB 4.5.1升级补丁,希望这也会将任何本地框架/ SDK文件更新到最新版本.这没有效果.

正如我上面提到的,这曾经工作得很好,似乎已经停止了.

在事情停止工作的时候,我正在调试另一个应用程序,其中包括安装防火墙以阻止特定端口.我怀疑它可能与此有关.

但是,我已经卸载了所有防火墙,但它仍然无法正常工作.我不确定哪个端口adt使用,但我没有看到它在运行时尝试连接lsof -i -n -P.

有什么建议?

更新:我也已经卸载并重新安装了Flash Builder(因此也就是AIR SDK),但它仍然无效.我认为这增加了港口冲突的重要性,但仍然让我不知道在哪里/如何继续

进一步更新 为AIR安装程序编译完全相同的代码库,安装和运行应用程序正常.(即生产版本).但是,代码库无法启动adl.这几乎证实了这个问题是一个本地机器配置问题adl,而不是代码库的问题.

apache-flex air

5
推荐指数
1
解决办法
3585
查看次数

LCDS&Flex - 注销后防止DuplicateHTTPSession错误

我有一个flex/LCDS堆栈,我发现在注销后,我经常(但不总是)开始Duplicate HTTP Session在客户端上接收错误.

这是堆栈的重要事实:

  • Flex客户端在应用程序中具有登录/注销功能.注销后页面不刷新.(因此,Flex应用程序和基础mx.messaging.FlexClient保持初始化)
  • 用户可以打开多个选项卡.
  • per-client-authentication设置为false- 我们正在尝试实现SSO(与CAS集成),因此用户原则绑定到JSession.
  • 使用长轮询进行消息传递时,以及打开两个(或更多)选项卡时,问题最为明显.
  • 使用RTMP或流式传输通道时,很难重现该问题.
  • 用户绑定到JSession - 即,如果他们在Tab1上登录,他们将登录到Tab2.
  • 当用户从任一选项卡注销时,Jsession将失效.

以下是我目前关于导致问题的理论:

  • Tab1(T1)启动客户端 - >发布ClientId1(C1) - > JSession1(J1)创建
  • Tab2(T2)启动客户端 - >发布ClientId2(C2) - >加入J1
  • T1登录 - > J1不受影响
  • T2登录 - > J1不受影响
  • T1和T2两者都订阅,开始轮询 amflongpolling
  • T1发送注销 - > J1无效 - > J2创建
  • T2发送投票(针对J1)
  • T1注销完成,返回J2,更新cookie

最后两个调用会产生冲突,LCDS FlexClient看起来与2个JSession相关.

结果,收到了以下错误:

Server.Processing.DuplicateSessionDetected检测到重复的基于HTTP的FlexSession,通常是由于远程主机禁用会话cookie.必须启用会话cookie才能正确管理客户端连接.

注意:我已经能够在独立项目中重新创建问题. 我认为这不是我们的应用程序特定代码的问题,而是由状态/会话性质以及共享同一会话的多个选项卡之间的冲突引起的.

总之,我认为问题是由于来自一个选项卡的调用导致服务器上的会话无效,但是在将响应发送到浏览器以通知新的JSession之前,调用是在旧的Jsession下发出的. .

什么是适当的策略来抵御这个重复的会话问题?


更新

为了澄清,虽然场景类似于此处讨论的场景,但存在微妙的差异,这使得该文章中的解决方案不合适.

具体来说,本文讨论了通过使用JSP或协调的RemoteObject调用控制跨两个浏览器的JSession 的初始创建来防止重复会话.

Flex实际上通过阻止出站RemoteObject调用来协助此过程,直到DSid定义了本地FlexClient 变量,表明初始会话已建立.

我的方案有所不同,因为JSession(和相关的LCDS FlexSession /客户端FlexClient对象)已经建立一次(使用该文章中讨论的技术),然后通过注销失效 - 这些调用session.invalidate() …

apache-flex blazeds lcds

5
推荐指数
1
解决办法
2708
查看次数

Spring MVC 3异常:需要一个Errors/BindingResult参数

我对以下方法有例外:

@Transactional
@RequestMapping(method=RequestMethod.PUT)
public @ResponseBody Account create(@Valid @RequestBody CreateAccountRequest request, BindingResult bindingResult)
{ ... 
}
Run Code Online (Sandbox Code Playgroud)

引发以下异常:

java.lang.IllegalStateException:一个Errors/BindingResult参数应该紧跟在控制器方法签名中的model属性参数之后:public com.mangofactory.concorde.domain.Account com.mangofactory.concorde.api.AccountService.create(com .mangofactory.concorde.api.rpc.CreateAccountRequest,org.springframework.validation.BindingResult)

根据文档,我需要添加一个BindingResult作为第二个参数.但是,我已经做到了.

它甚至出现在例外中.

我错过了什么?

java spring-mvc

5
推荐指数
1
解决办法
1万
查看次数

MySQL:拒绝用户访问...使用密码:是

最近重新格式化了硬盘,我无法使本地Java / Tomcat / MySQL堆栈正常工作。

这是一个全新的MySQL安装,可在Mac OSX 10.7.3(Lion)上运行。

我得到的错误是当我的tomcat实例启动并尝试连接时:

SEVERE: Servlet /concorde-web threw load() exception
java.sql.SQLException: Access denied for user 'concorde'@'localhost' (using password: YES)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
Run Code Online (Sandbox Code Playgroud)

采取的步骤:

  • 我已concorde@localhost按照此处此处的说明设置的密码
  • 我可以使用相同的凭据从控制台进行连接。以下所有工作:

    mysql -u concorde -h localhost -p
    mysql -u concorde -p
    mysql -u concorde -h localhost -D concorde -p
    // the app is trying to connect as user concorde to db concorde
    
    Run Code Online (Sandbox Code Playgroud)
  • 我确保协和用户具有权限-不仅来自本地主机,而且还可以在任何地方:

    GRANT ALL ON concorde.* TO 'concorde'@'%';
    FLUSH PRIVELEDGES;
    
    Run Code Online (Sandbox Code Playgroud)

我想念什么?

除此之外,我可以采取哪些步骤来解决这里发生的事情?我可以检查任何日志吗?

编辑

根据要求,这是我正在使用的代码。

但是,在重新格式化硬盘之前,此代码可以正常工作,因此我怀疑问题是否出在其中。 …

java mysql

5
推荐指数
1
解决办法
1万
查看次数

Spring Security + MVC:关于上下文定义和bean范围的问题

我试图理解在Spring-MVC应用程序中定义Spring Security的推荐方法,其中bean定义分为多个父/子上下文.

例如,我当前的应用程序web.xml看起来如下,(我理解为相当标准)

<context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
    classpath:applicationContext.xml
    /WEB-INF/securityContext.xml
    </param-value>
</context-param>
<listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<filter>
    <filter-name>springSecurityFilterChain</filter-name>
    <filter-class>org.springframework.web.filter.DelegatingFilterProxy</filter-class>
</filter>
<filter-mapping>
    <filter-name>springSecurityFilterChain</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
    <servlet-name>spring-mvc</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>spring-mvc</servlet-name>
    <url-pattern>/app/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

所以,我有一个标准ContextLoaderListener定义/,加载我的全局配置 - applicationContext.xmlsecurityContext.xml.我还定义了spring mvc DispatcherServletat /app/,它从中加载了自己的bean spring-mvc-servlet.xml.

据我了解,定义的spring-mvc-servlet.xml配置对于在任一顶级上下文文件中定义的配置是不可见的.

哪里是定义应用级安全概念的最佳位置?例如,我想添加以下过滤器.

<security:http pattern="/oauth/token" create-session="stateless" entry-point-ref="oauthAuthenticationEntryPoint">
    <security:custom-filter ref="clientCredentialsTokenEndpointFilter" before="BASIC_AUTH_FILTER" />
</security:http>
Run Code Online (Sandbox Code Playgroud)

这样,请求/app/oauth/token通过此过滤器,并获得处理的基本身份验证.

因为这与Spring-MVC app的关注直接相关,所以我最初定义它spring-mvc-context.xml(这就是为什么它app被排除在url之外).

但是,这意味着它对于定义的安全配置不可见securityContext.xml,因此它被忽略.

所以,我把它移动到securityContext.xml,但这样做,也必须移动所有依赖项.我很快就把所有东西都搬到了applicationContext.xml,这spring-mvc-context.xml …

java spring spring-mvc spring-security

5
推荐指数
1
解决办法
3244
查看次数

用于源格式化的Java API

有几个PHP或js代码格式化库 - 有谁知道Java中是否存在类似的库?

即,给定一串代码,返回带有语法着色等的格式化字符串.

如果它能自动检测到语言,那将是理想的,但我可能会在那里推动我的运气......

文本最终将显示在Flex应用程序中,因此虽然我可以使用js lib,但我们将解析大型文件(最多6000行),因此我希望尽量减少客户端处理.

理想的输出是没有CSS的HTML,虽然我会采取我能得到的.

java code-formatting syntax-highlighting

4
推荐指数
1
解决办法
702
查看次数

Groovy:向URL发送请求,忽略结果

在groovy中,有没有办法向URL发送请求,忽略响应?主要目的是在更短的时间内向服务器发送更多请求.

因为结果对我来说并不重要,一旦发送请求,我不希望脚本在继续之前等待响应.

这是我当前的脚本:

(1..50).each { element->
  def url = "http://someUrl"
  url.toURL().text 
} 
Run Code Online (Sandbox Code Playgroud)

在此代码中,该text方法必须加载整个响应,我并不真正关心.重要的是发送请求,等待响应并不重要.

有类似的send方法吗?(沿着...的路线

url.toURL().send
Run Code Online (Sandbox Code Playgroud)

或者,是否有一种"groovy"方式我可以使用GPARS并行运行循环来加快速度?

java groovy

4
推荐指数
1
解决办法
941
查看次数

Adobe Flex和HTML 5之间的区别

我听说HTML 5对于开发富Internet应用程序也很有用.任何人都可以解释Adobe Flex和HTML5之间的区别.

apache-flex html5

4
推荐指数
1
解决办法
5478
查看次数

Groovy - 将XmlSlurper与动态路径一起使用

是否可以使用任意路径访问Xml节点?

例如:给定xml:

    <records>
      <bike name='Chopper' />
      <car name='HSV Maloo' make='Holden' year='2006'>
        <country>Australia</country>
        <record type='speed'>Production Pickup Truck with speed of 271kph</record>
      </car>
      <car name='P50' make='Peel' year='1962'>
        <country>Isle of Man</country>
        <record type='size'>Smallest Street-Legal Car at 99cm wide and 59 kg in weight</record>
      </car>
    </records>
Run Code Online (Sandbox Code Playgroud)

如何使用以字符串形式提供的任意路径访问xml的内容 - 例如:

XmlSlurper xml = new XmlSlurper.parse(theXml)
assert xml['bike.@name'] == 'Chopper'
assert xml['car[0].country'] == 'Australia'
Run Code Online (Sandbox Code Playgroud)

groovy

4
推荐指数
1
解决办法
1588
查看次数

氛围:单个HttpConnection上的多个订阅

我在我的Spring MVC应用程序中使用Atmosphere来促进推送,使用streaming传输.

在我的应用程序的整个生命周期中,客户端将订阅和取消订阅许多不同的主题.

Atmosphere似乎每个订阅使用一个http连接 - 即每次调用$.atmosphere.subscribe(request)创建一个新连接.这很快耗尽了从浏览器到大气服务器的连接数.

我不想每次都创建一个新资源,而是希望能够AtmosphereResource在初始创建后添加和删​​除广播公司.

但是,由于它AtmosphereResource是入站请求的一对一表示,每次客户端向服务器发送请求时,它都会到达一个新的AtomsphereResource,这意味着我无法引用原始资源,并将其附加到话题的Broadcaster.

我已经尝试过使用它们$.atmosphere.subscribe(request)并调用atmosphereResource.push(request)原始subscribe()调用返回的资源.但是,这没有任何区别.

接近这个的正确方法是什么?

java atmosphere

4
推荐指数
1
解决办法
2988
查看次数