• 关于

    js调java

    的搜索结果

问题

js怎么调java方法

云计算小粉 2019-12-01 19:46:00 672 浏览量 回答数 1

问题

如何在Java中调用JS中以参数形式传过来的回调方法?

蛮大人123 2019-12-01 19:59:31 1324 浏览量 回答数 1

回答

js和java语法上不同,不过思路是一样的,就是把条件分支里面怎么做的代码,从函数中抽出,让调用者实现,并且用参数传给函数,让函数回调。java中的做法是接口或者lambda表达式(java8),js直接可以传函数:function foo(factor) //factor代替type { factor(); } 调用 foo(function() { 条件判断的代码 });

小旋风柴进 2019-12-02 02:17:03 0 浏览量 回答数 0

阿里云高校特惠,助力学生创业梦!0元体验,快速入门云计算!

学生动手场景应用,快速了解并掌握云服务器的各种新奇玩法!

回答

不知您是再哪里出现问题呢? 这一块应该是由服务端加载SDK,生成签名,然后JS发送请求,在JS里设置回调的信息 ------------------------- 看了下你的错误返回,像是鉴权失败了.你确认过bucket,ak,sk么? ------------------------- 1.你目前的问题是上传鉴权问题.2.如果你想处理,思路是这样的Java生成签名,前端调用上传,上传成功后JS请求回调函数,回调函数接受数据,并存储数据库

西秦说云 2019-12-02 01:45:09 0 浏览量 回答数 0

回答

(1)对图片本身进行操作。尽量不要使用setImageBitmap、setImageResource、BitmapFactory.decodeResource来设置一张大图,因为这些方法在完成decode后, 最终都是通过java层的createBitmap来完成的,需要消耗更多内存. (2)图片进行缩放的比例,SDK中建议其值是2的指数值,值越大会导致图片不清晰。 (3)不用的图片记得调用图片的recycle()方法 25、HybridApp WebView和JS交互 Android与JS通过WebView互相调用方法,实际上是: Android去调用JS的代码 通过WebView的loadUrl(),使用该方法比较简洁,方便。但是效率比较低,获取返回值比较困难。 通过WebView的evaluateJavascript(),该方法效率高,但是4.4以上的版本才支持,4.4以下版本不支持。所以建议两者混合使用。 JS去调用Android的代码 通过WebView的addJavascriptInterface()进行对象映射 ,该方法使用简单,仅将Android对象和JS对象映射即可,但是存在比较大的漏洞。 漏洞产生原因是:当JS拿到Android这个对象后,就可以调用这个Android对象中所有的方法,包括系统类(java.lang.Runtime 类),从而进行任意代码执行。 解决方式: (1)Google 在Android 4.2 版本中规定对被调用的函数以 @JavascriptInterface进行注解从而避免漏洞攻击。 (2)在Android 4.2版本之前采用拦截prompt()进行漏洞修复。 通过 WebViewClient 的shouldOverrideUrlLoading ()方法回调拦截 url 。这种方式的优点:不存在方式1的漏洞;缺点:JS获取Android方法的返回值复杂。(ios主要用的是这个方式) (1)Android通过 WebViewClient 的回调方法shouldOverrideUrlLoading ()拦截 url (2)解析该 url 的协议 (3)如果检测到是预先约定好的协议,就调用相应方法 通过 WebChromeClient 的onJsAlert()、onJsConfirm()、onJsPrompt()方法回调拦截JS对话框alert()、confirm()、prompt() 消息 这种方式的优点:不存在方式1的漏洞;缺点:JS获取Android方法的返回值复杂。

剑曼红尘 2020-04-10 12:48:25 0 浏览量 回答数 0

问题

同步异步与回调

chenchuan 2019-12-01 21:37:37 1178 浏览量 回答数 0

回答

单纯做网站建设,网上书很多,但是要深入的做,还是要掌握一些计算机基础知识,像编程(如:java、js、css等等),推荐的书太多了,直接上网搜索吧。初次之外,建议读一些性能调优、架构设计以及数据库相关的书籍。

inzaghi1984 2019-12-02 00:27:03 0 浏览量 回答数 0

回答

回 1楼西秦的帖子 您好:          西秦前辈,我在上传的时候出现以下异常,我调试的时候发现upload.js xmlhttp.responseText 里面callback值与开发文档中的值不符  附图: ------------------------- 回 3楼shinenuaa的帖子 您好,我通过Java开发 打war包发布公网已经上传成功,回调上传文件信息一直不成功,主要我想把文件信息(文件名和文件大小)保存到应用服务器(DB)中  怎么处理 ------------------------- 回 4楼西秦的帖子 您好,西秦前辈  我通过Java开发 打war包发布公网已经上传成功。回调上传文件信息一直不成功,主要我想把文件信息(文件名和文件大小)保存到应用服务器(DB)中  怎么处理

奋斗的小黄 2019-12-02 01:45:09 0 浏览量 回答数 0

回答

前端部分:html,css,js,ajax 数据处理: json,xml,gson 后台部分:java基础语言,junit单测,log4j,spring,springboot,mybatis,redis等中间件 版本控制:git,svn WEB服务器:Tomcat 开发工具:IDEA, 最好用的,没有之一 数据库:MySQL,Hbase 一种关系型一种非关系型即可 Linux:基本命令,grep,sed,ssh等 chrome:各种web开发插件,各取所需,比如json插件等 进阶:缓存、架构、jvm调优等

nnnnnuo 2019-12-02 01:02:57 0 浏览量 回答数 0

回答

没执行,说明代码有错误。路径没错吧?检查一下,还有报错了没,错误怎么提示的1,可能是路径问题,2,你的返回值,的问题,方法是把地址直接粘贴到地址栏中,看看是否可以访问,如果是返回值的错误,可以用服务器的语言测试是否 有js访问,例如:php java 都有自己的检测方法 回调默认接收json数据,而你返回text数据,指定dataType为text试一下,用ajax方法试过

杨冬芳 2019-12-02 03:03:19 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 本示例讲解在服务端通过PHP代码完成签名,并且服务端设置了上传后回调,然后通过表单直传数据到OSS。 背景 采用服务端签名后直传方案有个问题:用户上传数据后,很多场景下,应用服务器需要知道用户上传了哪些文件以及文件名称,如果是图片的话,还需要知道图片的大小等。为此OSS提供了上传回调方案。OSS回调完成后,应用服务器再返回结果给客户端。这样服务端就可以实时了解用户上传了什么文件。 Demo 您可以通过样例体验服务端签名直传并设置上传回调的效果:PC浏览器测试样例 原理介绍 服务端签名直传并设置上传回调的逻辑图如下: 流程如下: 用户向应用服务器请求上传Policy和回调。 应用服务器返回上传Policy和回调设置。 用户直接向OSS发送文件上传请求。 OSS根据用户的回调设置,发送回调请求给应用服务器。 应用服务器返回响应给OSS。 OSS将应用服务器返回的内容返回给用户。 说明 如果应用服务器返回成功,那么OSS就返回成功给用户;如果应用服务器返回失败,那么OSS也返回失败给用户。这样确保了用户上传成功和失败的文件,应用服务器都会收到通知。 简单讲,就是用户要上传一个文件到OSS,而且希望上传完毕的时候自己的应用服务器能够知道这件事,这时就需要设置一个回调函数,把这件事告知用户的应用服务器。这样当OSS收到用户的上传请求之后开始上传,上传完之后不会直接给用户返回结果,而是先通知用户的应用服务器,然后再把结果转达给用户。 前提条件 Web服务器已部署。 Web服务器对应的域名可通过公网访问。 步骤 1:下载并安装Plugload Plupload是一款简单易用且功能强大的文件上传工具, 支持多种上传方式,包括html5、flash、silverlight,、html4。它会智能检测当前环境,选择最适合的上传方式,并且会优先采用Html5方式。请参见Plupload官网进行下载和安装。 步骤 2:下载应用服务器代码 PHP:下载地址 Java:下载地址 Python:下载地址 Go:下载地址 步骤 3:修改配置文件 本示例采用PHP编写。将下载包解压后,修改以下文件: php/get.php文件:$id= '<yourAccessKeyId>'; $key= <yourAccessKeySecrety'; $host = 'http://post-test.oss-cn-hangzhou.aliyuncs.com'; $callbackUrl = "http://oss-demo.aliyuncs.com:23450"; $callback_param = array('callbackUrl'=>$callbackUrl, 'callbackBody'=>'filename=${object}&size=${size}&mimeType=${mimeType}&height=${imageInfo.height}&width=${imageInfo.width}', 'callbackBodyType'=>"application/x-www-form-urlencoded"); $id:您的AccessKeyId $key:您的AessKeySecret $host:格式为BucketName.Endpoint,例如post-test.oss-cn-hangzhou.aliyuncs.com 说明 关于Endpoint的介绍,请参见Endpoint(访问域名)。 $callbackUrl:设置回调URL,即回调服务器地址,用于处理应用服务器与OSS之前的通信。例如http://abc.com:8080/callback.php。OSS会在文件上传完成后,把文件上传信息通过此回调URL发送给应用服务器。 $callback_param:可选参数,用于设置callbackBody和callbackBodyType等选项。 upload.js文件 将变量severUrl改成服务器部署的地址,用于处理浏览器和应用服务器之间的通信。例如http://abc.com:8080/oss-h5-upload-js-php-callback/get.php。 步骤 4:设置CORS HTML表单直接上传到OSS会产生跨域请求。为了浏览安全,需要为Bucket设置跨域规则(CORS),支持Post方法。 具体操作步骤请参见设置跨域访问。设置如下图所示: 说明 在低版本IE浏览器,Plupload会以Flash方式执行。您需要设置crossdomain.xml ,设置方法请参见OSS Web直传—使用Flash上传。 步骤 5:设置上传回调解析 示例程序只是完成了如何检查应用服务器收到的签名, 您需要自行增加对应用服务器收到的回调内容的格式解析 。 PHP: 应用服务器回调程序代码:下载地址 运行方法:将解压包部署到Apache环境下,因为PHP本身语言的特点,某些数据头部的获取会依赖于环境。请参考例子根据实际环境进行修改。 Java: 应用服务器回调程序代码:下载地址 运行方法:解压后运行java -jar oss-callback-server-demo.jar 9000。9000为运行的端口,可以自己指定。 说明 这个jar例子在java 1.7运行通过,如果有问题可以自己依据提供的代码进行修改。这是一个maven项目。 Python: 应用服务器回调程序代码:下载地址 运行方法:解压后直接运行python callback_app_server.py即可,程序自实现了一个简单的http server,运行该程序可能需要安装rsa的依赖。 Ruby: 应用服务器回调程序代码:下载地址 运行方法: ruby aliyun_oss_callback_server.rb 步骤 6:体验上传回调 将应用服务器代码zip包解压到web根目录下。 在Web浏览器中输入<Web应用服务器地址>/oss-h5-upload-js-php-callback/index.html,例如http://abc.com:8080/oss-h5-upload-js-php-callback/index.html。 选择一个或多个文件进行上传。 上传成功后,通过控制台查看上传结果。 核心代码解析 本示例的更多细节,如上传签名、设置随机文件名等请参见服务端签名直传—核心代码解析。 代码要添加的内容如下: new_multipart_params = { 'key' : key + '${filename}', 'policy': policyBase64, 'OSSAccessKeyId': accessid, 'success_action_status' : '200', //让服务端返回200,不设置则默认返回204 'callback':  callbackbody, 'signature': signature, }; 上述的callbackbody是PHP服务端返回的。在本例中,从PHP服务端获取到的内容如下: {"accessid":"6MKOqxGiGU4AUk44", "host":"http://post-test.oss-cn-hangzhou.aliyuncs.com", "policy":"eyJleHBpcmF0aW9uIjoiMjAxNS0xMS0wNVQyMDo1MjoyOVoiLCJjdb25kaXRpb25zIjpbWyJjdb250ZW50LWxlbmd0aC1yYW5nZSIsMCwxMDQ4NTc2MDAwXSxbInN0YXJ0cy13aXRoIiwiJGtleSIsInVzZXItZGlyXC8iXV19", "signature":"VsxOcOudxDbtNSvz93CLaXPz+4s=", "expire":1446727949, "callback":"eyJjYWxsYmFja1VybCI6Imh0dHA6Ly9vc3MtZGVtby5hbGl5dW5jcy5jdb206MjM0NTAiLCJjYWxsYmFja0hvc3QiOiJvc3MtZGVtby5hbGl5dW5jcy5jdb20iLCJjYWxsYmFja0JvZHkiOiJmaWxlbmFtZT0ke29iamVjdH0mc2l6ZT0ke3NpemV9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmhlaWdodD0ke2ltYWdlSW5mby5oZWlnaHR9JndpZHRoPSR7aW1hZ2VJdbmZvLndpZHRofSIsImNhbGxiYWNrQm9keVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifQ==","dir":"user-dirs/"} 上面提到callbackbody,就是上述返回结果里面的callback内容经过base64编码后生成的。 解码后的内容如下: {"callbackUrl":"http://oss-demo.aliyuncs.com:23450", "callbackHost":"oss-demo.aliyuncs.com", "callbackBody":"filename=${object}&size=${size}&mimeType=${mimeType}&height=${imageInfo.height}&width=${imageInfo.width}", "callbackBodyType":"application/x-www-form-urlencoded"} 内容解析如下: CallbackUrl:OSS往这个机器发送的URL请求。 callbackHost:OSS发送这个请求时,请求头部所带的Host头。 callbackBody:OSS请求时,发送给应用服务器的内容,可以包括文件的名称、大小、类型。如果是图片,可以是图片的高度、宽度。 callbackBodyType:请求发送的Content-Type。 说明 您的应用服务器收到的回调请求有可能没有Authotization头,这是因为有些 Web应用服务器会将Authorization头自行解析掉,比如apache2,因此需要设置成不解析这个头部。以apache2为例,具体设置方法如下: 打开rewrite模块,执行命令:a2enmod rewrite。 修改配置文件 /etc/apache2/apache2.conf(根据apache2的安装路径不同会有不一样)。将Allow Override设置成All,然后添加以下两个配置项: RewriteEngine on RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization},last]

2019-12-01 23:13:29 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 本示例讲解在服务端通过PHP代码完成签名,并且服务端设置了上传后回调,然后通过表单直传数据到OSS。 背景 采用服务端签名后直传方案有个问题:用户上传数据后,很多场景下,应用服务器需要知道用户上传了哪些文件以及文件名称,如果是图片的话,还需要知道图片的大小等。为此OSS提供了上传回调方案。OSS回调完成后,应用服务器再返回结果给客户端。这样服务端就可以实时了解用户上传了什么文件。 Demo 您可以通过样例体验服务端签名直传并设置上传回调的效果:PC浏览器测试样例 原理介绍 服务端签名直传并设置上传回调的逻辑图如下: 流程如下: 用户向应用服务器请求上传Policy和回调。 应用服务器返回上传Policy和回调设置。 用户直接向OSS发送文件上传请求。 OSS根据用户的回调设置,发送回调请求给应用服务器。 应用服务器返回响应给OSS。 OSS将应用服务器返回的内容返回给用户。 说明 如果应用服务器返回成功,那么OSS就返回成功给用户;如果应用服务器返回失败,那么OSS也返回失败给用户。这样确保了用户上传成功和失败的文件,应用服务器都会收到通知。 简单讲,就是用户要上传一个文件到OSS,而且希望上传完毕的时候自己的应用服务器能够知道这件事,这时就需要设置一个回调函数,把这件事告知用户的应用服务器。这样当OSS收到用户的上传请求之后开始上传,上传完之后不会直接给用户返回结果,而是先通知用户的应用服务器,然后再把结果转达给用户。 前提条件 Web服务器已部署。 Web服务器对应的域名可通过公网访问。 步骤 1:下载并安装Plugload Plupload是一款简单易用且功能强大的文件上传工具, 支持多种上传方式,包括html5、flash、silverlight,、html4。它会智能检测当前环境,选择最适合的上传方式,并且会优先采用Html5方式。请参见Plupload官网进行下载和安装。 步骤 2:下载应用服务器代码 PHP:下载地址 Java:下载地址 Python:下载地址 Go:下载地址 步骤 3:修改配置文件 本示例采用PHP编写。将下载包解压后,修改以下文件: php/get.php文件:$id= '<yourAccessKeyId>'; $key= <yourAccessKeySecrety'; $host = 'http://post-test.oss-cn-hangzhou.aliyuncs.com'; $callbackUrl = "http://oss-demo.aliyuncs.com:23450"; $callback_param = array('callbackUrl'=>$callbackUrl, 'callbackBody'=>'filename=${object}&size=${size}&mimeType=${mimeType}&height=${imageInfo.height}&width=${imageInfo.width}', 'callbackBodyType'=>"application/x-www-form-urlencoded"); $id:您的AccessKeyId $key:您的AessKeySecret $host:格式为BucketName.Endpoint,例如post-test.oss-cn-hangzhou.aliyuncs.com 说明 关于Endpoint的介绍,请参见Endpoint(访问域名)。 $callbackUrl:设置回调URL,即回调服务器地址,用于处理应用服务器与OSS之前的通信。例如http://abc.com:8080/callback.php。OSS会在文件上传完成后,把文件上传信息通过此回调URL发送给应用服务器。 $callback_param:可选参数,用于设置callbackBody和callbackBodyType等选项。 upload.js文件 将变量severUrl改成服务器部署的地址,用于处理浏览器和应用服务器之间的通信。例如http://abc.com:8080/oss-h5-upload-js-php-callback/get.php。 步骤 4:设置CORS HTML表单直接上传到OSS会产生跨域请求。为了浏览安全,需要为Bucket设置跨域规则(CORS),支持Post方法。 具体操作步骤请参见设置跨域访问。设置如下图所示: 说明 在低版本IE浏览器,Plupload会以Flash方式执行。您需要设置crossdomain.xml ,设置方法请参见OSS Web直传—使用Flash上传。 步骤 5:设置上传回调解析 示例程序只是完成了如何检查应用服务器收到的签名, 您需要自行增加对应用服务器收到的回调内容的格式解析 。 PHP: 应用服务器回调程序代码:下载地址 运行方法:将解压包部署到Apache环境下,因为PHP本身语言的特点,某些数据头部的获取会依赖于环境。请参考例子根据实际环境进行修改。 Java: 应用服务器回调程序代码:下载地址 运行方法:解压后运行java -jar oss-callback-server-demo.jar 9000。9000为运行的端口,可以自己指定。 说明 这个jar例子在java 1.7运行通过,如果有问题可以自己依据提供的代码进行修改。这是一个maven项目。 Python: 应用服务器回调程序代码:下载地址 运行方法:解压后直接运行python callback_app_server.py即可,程序自实现了一个简单的http server,运行该程序可能需要安装rsa的依赖。 Ruby: 应用服务器回调程序代码:下载地址 运行方法: ruby aliyun_oss_callback_server.rb 步骤 6:体验上传回调 将应用服务器代码zip包解压到web根目录下。 在Web浏览器中输入<Web应用服务器地址>/oss-h5-upload-js-php-callback/index.html,例如http://abc.com:8080/oss-h5-upload-js-php-callback/index.html。 选择一个或多个文件进行上传。 上传成功后,通过控制台查看上传结果。 核心代码解析 本示例的更多细节,如上传签名、设置随机文件名等请参见服务端签名直传—核心代码解析。 代码要添加的内容如下: new_multipart_params = { 'key' : key + '${filename}', 'policy': policyBase64, 'OSSAccessKeyId': accessid, 'success_action_status' : '200', //让服务端返回200,不设置则默认返回204 'callback':  callbackbody, 'signature': signature, }; 上述的callbackbody是PHP服务端返回的。在本例中,从PHP服务端获取到的内容如下: {"accessid":"6MKOqxGiGU4AUk44", "host":"http://post-test.oss-cn-hangzhou.aliyuncs.com", "policy":"eyJleHBpcmF0aW9uIjoiMjAxNS0xMS0wNVQyMDo1MjoyOVoiLCJjdb25kaXRpb25zIjpbWyJjdb250ZW50LWxlbmd0aC1yYW5nZSIsMCwxMDQ4NTc2MDAwXSxbInN0YXJ0cy13aXRoIiwiJGtleSIsInVzZXItZGlyXC8iXV19", "signature":"VsxOcOudxDbtNSvz93CLaXPz+4s=", "expire":1446727949, "callback":"eyJjYWxsYmFja1VybCI6Imh0dHA6Ly9vc3MtZGVtby5hbGl5dW5jcy5jdb206MjM0NTAiLCJjYWxsYmFja0hvc3QiOiJvc3MtZGVtby5hbGl5dW5jcy5jdb20iLCJjYWxsYmFja0JvZHkiOiJmaWxlbmFtZT0ke29iamVjdH0mc2l6ZT0ke3NpemV9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmhlaWdodD0ke2ltYWdlSW5mby5oZWlnaHR9JndpZHRoPSR7aW1hZ2VJdbmZvLndpZHRofSIsImNhbGxiYWNrQm9keVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifQ==","dir":"user-dirs/"} 上面提到callbackbody,就是上述返回结果里面的callback内容经过base64编码后生成的。 解码后的内容如下: {"callbackUrl":"http://oss-demo.aliyuncs.com:23450", "callbackHost":"oss-demo.aliyuncs.com", "callbackBody":"filename=${object}&size=${size}&mimeType=${mimeType}&height=${imageInfo.height}&width=${imageInfo.width}", "callbackBodyType":"application/x-www-form-urlencoded"} 内容解析如下: CallbackUrl:OSS往这个机器发送的URL请求。 callbackHost:OSS发送这个请求时,请求头部所带的Host头。 callbackBody:OSS请求时,发送给应用服务器的内容,可以包括文件的名称、大小、类型。如果是图片,可以是图片的高度、宽度。 callbackBodyType:请求发送的Content-Type。 说明 您的应用服务器收到的回调请求有可能没有Authotization头,这是因为有些 Web应用服务器会将Authorization头自行解析掉,比如apache2,因此需要设置成不解析这个头部。以apache2为例,具体设置方法如下: 打开rewrite模块,执行命令:a2enmod rewrite。 修改配置文件 /etc/apache2/apache2.conf(根据apache2的安装路径不同会有不一样)。将Allow Override设置成All,然后添加以下两个配置项: RewriteEngine on RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization},last]

2019-12-01 23:13:29 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档 本示例讲解在服务端通过PHP代码完成签名,并且服务端设置了上传后回调,然后通过表单直传数据到OSS。 背景 采用服务端签名后直传方案有个问题:用户上传数据后,很多场景下,应用服务器需要知道用户上传了哪些文件以及文件名称,如果是图片的话,还需要知道图片的大小等。为此OSS提供了上传回调方案。OSS回调完成后,应用服务器再返回结果给客户端。这样服务端就可以实时了解用户上传了什么文件。 Demo 您可以通过样例体验服务端签名直传并设置上传回调的效果:PC浏览器测试样例 原理介绍 服务端签名直传并设置上传回调的逻辑图如下: 流程如下: 用户向应用服务器请求上传Policy和回调。 应用服务器返回上传Policy和回调设置。 用户直接向OSS发送文件上传请求。 OSS根据用户的回调设置,发送回调请求给应用服务器。 应用服务器返回响应给OSS。 OSS将应用服务器返回的内容返回给用户。 说明 如果应用服务器返回成功,那么OSS就返回成功给用户;如果应用服务器返回失败,那么OSS也返回失败给用户。这样确保了用户上传成功和失败的文件,应用服务器都会收到通知。 简单讲,就是用户要上传一个文件到OSS,而且希望上传完毕的时候自己的应用服务器能够知道这件事,这时就需要设置一个回调函数,把这件事告知用户的应用服务器。这样当OSS收到用户的上传请求之后开始上传,上传完之后不会直接给用户返回结果,而是先通知用户的应用服务器,然后再把结果转达给用户。 前提条件 Web服务器已部署。 Web服务器对应的域名可通过公网访问。 步骤 1:下载并安装Plugload Plupload是一款简单易用且功能强大的文件上传工具, 支持多种上传方式,包括html5、flash、silverlight,、html4。它会智能检测当前环境,选择最适合的上传方式,并且会优先采用Html5方式。请参见Plupload官网进行下载和安装。 步骤 2:下载应用服务器代码 PHP:下载地址 Java:下载地址 Python:下载地址 Go:下载地址 步骤 3:修改配置文件 本示例采用PHP编写。将下载包解压后,修改以下文件: php/get.php文件:$id= '<yourAccessKeyId>'; $key= <yourAccessKeySecrety'; $host = 'http://post-test.oss-cn-hangzhou.aliyuncs.com'; $callbackUrl = "http://oss-demo.aliyuncs.com:23450"; $callback_param = array('callbackUrl'=>$callbackUrl, 'callbackBody'=>'filename=${object}&size=${size}&mimeType=${mimeType}&height=${imageInfo.height}&width=${imageInfo.width}', 'callbackBodyType'=>"application/x-www-form-urlencoded"); $id:您的AccessKeyId $key:您的AessKeySecret $host:格式为BucketName.Endpoint,例如post-test.oss-cn-hangzhou.aliyuncs.com 说明 关于Endpoint的介绍,请参见Endpoint(访问域名)。 $callbackUrl:设置回调URL,即回调服务器地址,用于处理应用服务器与OSS之前的通信。例如http://abc.com:8080/callback.php。OSS会在文件上传完成后,把文件上传信息通过此回调URL发送给应用服务器。 $callback_param:可选参数,用于设置callbackBody和callbackBodyType等选项。 upload.js文件 将变量severUrl改成服务器部署的地址,用于处理浏览器和应用服务器之间的通信。例如http://abc.com:8080/oss-h5-upload-js-php-callback/get.php。 步骤 4:设置CORS HTML表单直接上传到OSS会产生跨域请求。为了浏览安全,需要为Bucket设置跨域规则(CORS),支持Post方法。 具体操作步骤请参见设置跨域访问。设置如下图所示: 说明 在低版本IE浏览器,Plupload会以Flash方式执行。您需要设置crossdomain.xml ,设置方法请参见OSS Web直传—使用Flash上传。 步骤 5:设置上传回调解析 示例程序只是完成了如何检查应用服务器收到的签名, 您需要自行增加对应用服务器收到的回调内容的格式解析 。 PHP: 应用服务器回调程序代码:下载地址 运行方法:将解压包部署到Apache环境下,因为PHP本身语言的特点,某些数据头部的获取会依赖于环境。请参考例子根据实际环境进行修改。 Java: 应用服务器回调程序代码:下载地址 运行方法:解压后运行java -jar oss-callback-server-demo.jar 9000。9000为运行的端口,可以自己指定。 说明 这个jar例子在java 1.7运行通过,如果有问题可以自己依据提供的代码进行修改。这是一个maven项目。 Python: 应用服务器回调程序代码:下载地址 运行方法:解压后直接运行python callback_app_server.py即可,程序自实现了一个简单的http server,运行该程序可能需要安装rsa的依赖。 Ruby: 应用服务器回调程序代码:下载地址 运行方法: ruby aliyun_oss_callback_server.rb 步骤 6:体验上传回调 将应用服务器代码zip包解压到web根目录下。 在Web浏览器中输入<Web应用服务器地址>/oss-h5-upload-js-php-callback/index.html,例如http://abc.com:8080/oss-h5-upload-js-php-callback/index.html。 选择一个或多个文件进行上传。 上传成功后,通过控制台查看上传结果。 核心代码解析 本示例的更多细节,如上传签名、设置随机文件名等请参见服务端签名直传—核心代码解析。 代码要添加的内容如下: new_multipart_params = { 'key' : key + '${filename}', 'policy': policyBase64, 'OSSAccessKeyId': accessid, 'success_action_status' : '200', //让服务端返回200,不设置则默认返回204 'callback':  callbackbody, 'signature': signature, }; 上述的callbackbody是PHP服务端返回的。在本例中,从PHP服务端获取到的内容如下: {"accessid":"6MKOqxGiGU4AUk44", "host":"http://post-test.oss-cn-hangzhou.aliyuncs.com", "policy":"eyJleHBpcmF0aW9uIjoiMjAxNS0xMS0wNVQyMDo1MjoyOVoiLCJjdb25kaXRpb25zIjpbWyJjdb250ZW50LWxlbmd0aC1yYW5nZSIsMCwxMDQ4NTc2MDAwXSxbInN0YXJ0cy13aXRoIiwiJGtleSIsInVzZXItZGlyXC8iXV19", "signature":"VsxOcOudxDbtNSvz93CLaXPz+4s=", "expire":1446727949, "callback":"eyJjYWxsYmFja1VybCI6Imh0dHA6Ly9vc3MtZGVtby5hbGl5dW5jcy5jdb206MjM0NTAiLCJjYWxsYmFja0hvc3QiOiJvc3MtZGVtby5hbGl5dW5jcy5jdb20iLCJjYWxsYmFja0JvZHkiOiJmaWxlbmFtZT0ke29iamVjdH0mc2l6ZT0ke3NpemV9Jm1pbWVUeXBlPSR7bWltZVR5cGV9JmhlaWdodD0ke2ltYWdlSW5mby5oZWlnaHR9JndpZHRoPSR7aW1hZ2VJdbmZvLndpZHRofSIsImNhbGxiYWNrQm9keVR5cGUiOiJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWQifQ==","dir":"user-dirs/"} 上面提到callbackbody,就是上述返回结果里面的callback内容经过base64编码后生成的。 解码后的内容如下: {"callbackUrl":"http://oss-demo.aliyuncs.com:23450", "callbackHost":"oss-demo.aliyuncs.com", "callbackBody":"filename=${object}&size=${size}&mimeType=${mimeType}&height=${imageInfo.height}&width=${imageInfo.width}", "callbackBodyType":"application/x-www-form-urlencoded"} 内容解析如下: CallbackUrl:OSS往这个机器发送的URL请求。 callbackHost:OSS发送这个请求时,请求头部所带的Host头。 callbackBody:OSS请求时,发送给应用服务器的内容,可以包括文件的名称、大小、类型。如果是图片,可以是图片的高度、宽度。 callbackBodyType:请求发送的Content-Type。 说明 您的应用服务器收到的回调请求有可能没有Authotization头,这是因为有些 Web应用服务器会将Authorization头自行解析掉,比如apache2,因此需要设置成不解析这个头部。以apache2为例,具体设置方法如下: 打开rewrite模块,执行命令:a2enmod rewrite。 修改配置文件 /etc/apache2/apache2.conf(根据apache2的安装路径不同会有不一样)。将Allow Override设置成All,然后添加以下两个配置项: RewriteEngine on RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization},last]

2019-12-01 23:13:29 0 浏览量 回答数 0

问题

实时语音识别AndroidSDK,这算不算画蛇添足?

正逍遥0716 2019-12-01 20:14:23 1336 浏览量 回答数 1

回答

跨域之后是以回调的方式再次请求,这个时候设置同步没有作用了######哦######jquery 跨域用的原理是script标签植入,所以是没有同步功能的;######回复 @景愿 : 不谈罗,太困扰了,######回复 @leizi_java : 你那个是流氓浏览器吧,a标签也拦截;######回复 @景愿 : 我之前用的隐藏a 然后用js进行触发也会有拦截 之后改为form 也会拦截 现在真不知道在咋弄######回复 @leizi_java : 用a标签target=_blank 点击来 打开新窗口,至于a标签么,隐藏也好,新建也好,都可以######回复 @景愿 : 我点击一个查看简历的操作,此时没有登录,会弹窗提示登录,当我输入用户及密码进行登录的时候,是跨越去请求的,此时如果登录成功,会回调去请求之前的查看简历的操作,这里是要另开的,就在这里,浏览器会拦截,因为这不是用户主动点击的,是登录成功后回调进行触发的

kun坤 2020-06-08 11:28:58 0 浏览量 回答数 0

回答

跨域之后是以回调的方式再次请求,这个时候设置同步没有作用了######哦######jquery 跨域用的原理是script标签植入,所以是没有同步功能的;######回复 @景愿 : 不谈罗,太困扰了,######回复 @leizi_java : 你那个是流氓浏览器吧,a标签也拦截;######回复 @景愿 : 我之前用的隐藏a 然后用js进行触发也会有拦截 之后改为form 也会拦截 现在真不知道在咋弄######回复 @leizi_java : 用a标签target=_blank 点击来 打开新窗口,至于a标签么,隐藏也好,新建也好,都可以######回复 @景愿 : 我点击一个查看简历的操作,此时没有登录,会弹窗提示登录,当我输入用户及密码进行登录的时候,是跨越去请求的,此时如果登录成功,会回调去请求之前的查看简历的操作,这里是要另开的,就在这里,浏览器会拦截,因为这不是用户主动点击的,是登录成功后回调进行触发的

montos 2020-05-30 13:57:56 0 浏览量 回答数 0

回答

[上海-java-白夜] 前端跨域用jsonp封装js回调 [健] 天猫和淘宝使用同一个SSO服务器。不管token  cookie 什么机制。同一个标识符,两个网站的辨识逻辑都是一样的**[重庆-后端-谭鹏] **这个标识符是什么呀 肯定的得前端携带了什么东西的在服务端进行鉴别的 不然服务端是怎么确定用户身份的,直到他已经在淘宝登陆过了 [上海-java-白夜] 天猫,淘宝的认证中心都在一起的,cookie信息是在你客户端的,通过请求传到服务器去的localstorage 或者 cookie 的 一个token。 是什么无所谓。重要的是两个网站去同一个地方去校验token  所以结果是一样的。不管你哪个域,服务端的认证中心是同一个,阿里都是中台,怎么可能每个项目一个认证中心,基础服务都统一出来了你用它旗下的网站的服务,用的cookie里面的那个表示你身份的信息key都可以是同一个,你回调的时候把token作为js传过去不就行了,正常情况下,你认证成功,直接会把你的token跟在你要跳转的新页面一起跳转过去**[重庆-后端-谭鹏] 嗯 假设这一次是登陆了淘宝嘛,那我再访问天猫的时候 前端怎么携带淘宝登陆后返回的票据?如果不携带的话 认证服务 肯定就认为你没有登陆[上海-java-白夜] 或者你后端将cros设置一下也是可以跨域接收资源的,这个票据在你的cookie里面,cookie是在你的客户端浏览器储存的[重庆-后端-谭鹏] 哪一个的cookie ?淘宝登陆了的话肯定这个token是存在淘宝域名下的。 天猫怎么能拿到这个token的 这就是我的这个疑问点,还是说前端有这样的技术 可以拿跨主域名的的cookie信息吗[上海-java-白夜] **或者服务器端cros设置一下就可以跨了,或者nginx代理一下也是可以跨的 [深圳-后端-章鱼] 说了半天,不如一张图清楚,关键在第七步,单点登录系统将ticket加载A系统的URL后面,A系统使用过滤器,将ticket写到自己域名下,应该没问题吧[成都-java-creed] 关键是输入用户名成功后,会生成sso认证的cookice,这个cookie就是跨域名访问的关键了[java-刘锦] 这个cookie是全局的?[杭州-后端-xinhe] 不是,每个域名各自维护自己的cookie,通过ticket传递用户身份[java-刘锦****] ticket是全局?[北京-java-犀利豆] ticket只用一次,session是全局的[杭州-后端-xinhe] 是的,我当时做的session各应用独立管理本地部分,但是生命周期会统一管理,全局统一登录登出和保活[深圳-后端-章鱼] 很强,关键就在sso.com认证中心自己的cookie[成都-java-creed] 我认证sso自己的cookie是认证里面的关键,没有这玩不了的[杭州-后端-xinhe] 对,这个把整个流程串起来了 [北京-JAVA-阿轩] 当我访问b系统,ticket哪里来的[成都-java-creed]1 用户在www.a.com正常上网,突然想访问www.b.com,于是发起访问www.b.com的请求。2 www.b.com接收到请求,发现第一次访问,于是给他一个重定向的地址,让他去找认证中心登录。3 浏览器根据返回的地址,发起重定向,因为之前访问过一次了,因此这次会携带上次返回的Cookie:认证中心。4 认证中心收到请求,发现cookie内容能取到对应的认证信息,生成ticket,并且返回给浏览器,让他重定向到www.b.com[北京-java-犀利豆] 登录了a系统 说明 你已经登录了oss。等你登录b的时候,b会让你先到oss那里领一个ticket。你用ticket到b那里验证,验证成功了,b给你种上cookie[北京-JAVA-阿轩] 同一个session去oss索取的ticket是一样的呗[北京-java-犀利豆] @北京-JAVA-阿轩 不一定一样。[深圳-后端-章鱼] session会被状态限制,cookie则是时间限制[北京-JAVA-阿轩] 那b是通过解析ticket来确认是不是a登录过么[北京-java-犀利豆] 用户从oss拿到ticket,然后去b访问,b也会在后端 问一下oss,这个ticket是不是他发的。如果验证成功,b会给用户种上cookie。ticket就可以作废了。这个是后你去c,c会让你先去oss看看有没有ticket,如果有,就回到上面我说的流程。[java-刘锦] 那session干了啥[深圳-后端-章鱼] session只是用于获取token后,各自服务器里存用户的登录状态和权限等,方便后续的访问[北京-JAVA-阿轩] 那单点登录难点,和安全性,是哪里!感觉不难啊,安全也不太安全,窃取到了ticket,不就谁都可以登录了[北京-java-犀利豆] ticket是一次性的。[java-刘锦] 怎么保证一次性[北京-java-犀利豆] 在ticket里面,你可以加上ip之类的标识,加上时间,次数的限制,比ticket只能被校验一次,再来校验就不行了。手机充值卡怎么保证只能充一次,ticket就怎么保证只用一次。 [北京-JAVA-阿轩] 跨域原理是什么[福建-后端-Rule] 浏览器同源策略[北京-java-犀利豆] ticket 你可放在url。或者header里面。就不存在跨越问题[北京-JAVA-阿轩] 这可以避免同源策略么[北京-JAVA-阿轩] 浏览器怎么做到同源策略的,怎么和服务器配合支持和不支持跨域的!跟TCP协议有关么[北京-java-犀利豆] 跨域是浏览器实现的安全策略[北京-JAVA-阿轩] 原来测试的时候,发现前端会有一个预请求!确认,接口无感知!这个是和什么打交道的[北京-java-犀利豆] option?[上海-JAVA开发] 这个一般解决跨服务器请求的,如果程序里面有第三方服务器的话会先发个option探探情况 来源:云原生后端社区https://www.yuque.com/server_mind/answer

montos 2020-04-20 20:44:31 0 浏览量 回答数 0

回答

用webview打开网页,然后通过webview与app的本地java代码进行交互。1、设置webview支持JavascriptmWebview.getSettings().setJavaScriptEnabled(true);2、加进一个回调的代理类JavaScriptInterface,并给它一个调用的名称:ncpmWebView.addJavascriptInterface(new JavaScriptInterface(), "ncp");final class JavaScriptInterface { public int callOnJs() { return 1000; } public void callOnJs2(String mode) { //TODO } }3、JS页面调用android方法 <script type="text/javascript"> window.onload = function(){ var _int_value = window.ncp.callOnJs(); //通过ncp代理调用android方法 } </script>

蛮大人123 2019-12-02 02:16:42 0 浏览量 回答数 0

回答

。。。不要问这种问题, 谁有空手把手的加qq教你。。######弄了好几天了,实在没有好办法才来的啊 ######你可以类似这样的配置 我现在也是两个tomcat+1个memcached         <Context path=""             docBase="/home/wap01/deploy/2011/06/10/a"             reloadable="true"             caseSensitive="false"             debug="0">             <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"                     memcachedNodes="n1:192.168.3.4:11211"                     requestUriIgnorePattern=".*.(png|gif|jpg|css|js|ico|jpeg|htm|html)$"                     transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"                     />         </Context>###### 引用来自“li_mohao”的答案 你可以类似这样的配置 我现在也是两个tomcat+1个memcached         <Context path=""             docBase="/home/wap01/deploy/2011/06/10/a"             reloadable="true"             caseSensitive="false"             debug="0">             <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"                     memcachedNodes="n1:192.168.3.4:11211"                     requestUriIgnorePattern=".*\.(png|gif|jpg|css|js|ico|jpeg|htm|html)$"                     transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"                     />         </Context> 是2个tomcat都要修改 server.XML文件吗?还是只要配置安装了memcached的,还是2个服务器都要安装memcached???   ######Jun 24, 2011 2:37:59 PM org.apache.catalina.core.StandardService start INFO: Starting service Catalina Jun 24, 2011 2:37:59 PM org.apache.catalina.core.StandardEngine start INFO: Starting Servlet Engine: Apache Tomcat/6.0.29 Jun 24, 2011 2:38:00 PM de.javakaffee.web.msm.MemcachedBackupSessionManager startInternal INFO: MemcachedBackupSessionManager starts initialization... (configured nodes definition n1:192.168.3.4:11211, failover nodes null) Jun 24, 2011 2:38:00 PM de.javakaffee.web.msm.SessionTrackerValve <init> INFO: Setting ignorePattern to .*\.(png|gif|jpg|css|js|ico|jpeg|htm|html)$ Jun 24, 2011 2:38:00 PM de.javakaffee.web.msm.MemcachedBackupSessionManager setLockingMode INFO: Setting lockingMode to null Jun 24, 2011 2:38:00 PM de.javakaffee.web.msm.MemcachedBackupSessionManager createTranscoderFactory INFO: Creating transcoder factory de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory Jun 24, 2011 2:47:12 PM org.apache.catalina.core.AprLifecycleListener init INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments/jdk1.6.0_25/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib Jun 24, 2011 2:47:13 PM org.apache.tomcat.util.digester.SetPropertiesRule begin WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '0' did not fin Jun 24, 2011 2:47:13 PM org.apache.tomcat.util.digester.Digester startElement SEVERE: Begin event threw exception java.lang.ClassNotFoundException: de.javakaffee.web.msm.MemcachedBackupSessionManager     at java.net.URLClassLoader$1.run(URLClassLoader.java:202)     at java.security.AccessController.doPrivileged(Native Method)     at java.net.URLClassLoader.findClass(URLClassLoader.java:190)     at java.lang.ClassLoader.loadClass(ClassLoader.java:306)     at java.lang.ClassLoader.loadClass(ClassLoader.java:247)     at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:205)     at org.apache.tomcat.util.digester.Rule.begin(Rule.java:153)     at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1356)     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:     at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocu     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocume     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next     at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:6     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFr     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)     at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)     at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)     at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1642)     at org.apache.catalina.startup.Catalina.load(Catalina.java:510)     at org.apache.catalina.startup.Catalina.load(Catalina.java:548)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)     at java.lang.reflect.Method.invoke(Method.java:597)     at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) Jun 24, 2011 2:47:13 PM org.apache.catalina.startup.Catalina load WARNING: Catalina.start using conf/server.xml: java.lang.ClassNotFoundException: de.javakaffee.web.msm.MemcachedBackupSessionManager     at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2806)     at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2832)     at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1359)     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:     at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocu     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocume     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next     at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:6     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFr     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)     at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)     at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)     at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1642)     at org.apache.catalina.startup.Catalina.load(Catalina.java:510)     at org.apache.catalina.startup.Catalina.load(Catalina.java:548)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)     at java.lang.reflect.Method.invoke(Method.java:597)     at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) Caused by: java.lang.ClassNotFoundException: de.javakaffee.web.msm.MemcachedBackupSessionManager     at java.net.URLClassLoader$1.run(URLClassLoader.java:202)     at java.security.AccessController.doPrivileged(Native Method)     at java.net.URLClassLoader.findClass(URLClassLoader.java:190)     at java.lang.ClassLoader.loadClass(ClassLoader.java:306)     at java.lang.ClassLoader.loadClass(ClassLoader.java:247)     at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:205)     at org.apache.tomcat.util.digester.Rule.begin(Rule.java:153)     at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1356)     ... 20 more Jun 24, 2011 2:47:13 PM org.apache.tomcat.util.digester.SetPropertiesRule begin WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '0' did not fin Jun 24, 2011 2:47:13 PM org.apache.tomcat.util.digester.Digester startElement SEVERE: Begin event threw exception java.lang.ClassNotFoundException: de.javakaffee.web.msm.MemcachedBackupSessionManager     at java.net.URLClassLoader$1.run(URLClassLoader.java:202)     at java.security.AccessController.doPrivileged(Native Method)     at java.net.URLClassLoader.findClass(URLClassLoader.java:190)     at java.lang.ClassLoader.loadClass(ClassLoader.java:306)     at java.lang.ClassLoader.loadClass(ClassLoader.java:247)     at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:205)     at org.apache.tomcat.util.digester.Rule.begin(Rule.java:153)     at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1356)     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:     at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocu     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocume     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next     at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:6     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFr     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)     at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)     at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)     at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1642)     at org.apache.catalina.startup.Catalina.load(Catalina.java:510)     at org.apache.catalina.startup.Catalina.start(Catalina.java:568)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)     at java.lang.reflect.Method.invoke(Method.java:597)     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) Jun 24, 2011 2:47:13 PM org.apache.catalina.startup.Catalina load WARNING: Catalina.start using conf/server.xml: java.lang.ClassNotFoundException: de.javakaffee.web.msm.MemcachedBackupSessionManager     at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2806)     at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2832)     at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1359)     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:     at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocu     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocume     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next     at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:6     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFr     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)     at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)     at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)     at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1642)     at org.apache.catalina.startup.Catalina.load(Catalina.java:510)     at org.apache.catalina.startup.Catalina.start(Catalina.java:568)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)     at java.lang.reflect.Method.invoke(Method.java:597)     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) Caused by: java.lang.ClassNotFoundException: de.javakaffee.web.msm.MemcachedBackupSessionManager     at java.net.URLClassLoader$1.run(URLClassLoader.java:202)     at java.security.AccessController.doPrivileged(Native Method)     at java.net.URLClassLoader.findClass(URLClassLoader.java:190)     at java.lang.ClassLoader.loadClass(ClassLoader.java:306)     at java.lang.ClassLoader.loadClass(ClassLoader.java:247)     at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:205)     at org.apache.tomcat.util.digester.Rule.begin(Rule.java:153)     at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1356)     ... 20 more Jun 24, 2011 2:47:13 PM org.apache.catalina.startup.Catalina start SEVERE: Cannot start server. Server instance is not configured.     这个问题怎么解决 ?要导入哪些包? 我现在导入了 memcached-session-manager-1.4.0.jar memcached-2.5.jar kryo-1.03.jar minlog-1.2.jar reflectasm-0.9.jar asm-3.2.jar kryo-serializers-0.8.jar msm-kryo-serializer-1.4.0.jar javolution-5.4.3.1.jar msm-javolution-serializer-1.4.0.jar xstream-1.3.1.jar xpp3_min-1.1.3.4.O.jar msm-xstream-serializer-1.4.0.jar 都放到了 tomcat lib中 ######问题解决了吗?######cookie 可保存少量信息,如果有更多的信息可用memcached集中保存。 这样可以屏蔽调session管理

kun坤 2020-06-02 17:23:48 0 浏览量 回答数 0

回答

。。。不要问这种问题, 谁有空手把手的加qq教你。。######弄了好几天了,实在没有好办法才来的啊 ###### 你可以类似这样的配置 我现在也是两个tomcat+1个memcached         <Context path=""             docBase="/home/wap01/deploy/2011/06/10/a"             reloadable="true"             caseSensitive="false"             debug="0">             <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"                     memcachedNodes="n1:192.168.3.4:11211"                     requestUriIgnorePattern=".*\.(png|gif|jpg|css|js|ico|jpeg|htm|html)$"                     transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"                     />         </Context>###### 引用来自“li_mohao”的答案 你可以类似这样的配置 我现在也是两个tomcat+1个memcached         <Context path=""             docBase="/home/wap01/deploy/2011/06/10/a"             reloadable="true"             caseSensitive="false"             debug="0">             <Manager className="de.javakaffee.web.msm.MemcachedBackupSessionManager"                     memcachedNodes="n1:192.168.3.4:11211"                     requestUriIgnorePattern=".*\.(png|gif|jpg|css|js|ico|jpeg|htm|html)$"                     transcoderFactoryClass="de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory"                     />         </Context> 是2个tomcat都要修改 server.XML文件吗?还是只要配置安装了memcached的,还是2个服务器都要安装memcached???   ######Jun 24, 2011 2:37:59 PM org.apache.catalina.core.StandardService start INFO: Starting service Catalina Jun 24, 2011 2:37:59 PM org.apache.catalina.core.StandardEngine start INFO: Starting Servlet Engine: Apache Tomcat/6.0.29 Jun 24, 2011 2:38:00 PM de.javakaffee.web.msm.MemcachedBackupSessionManager startInternal INFO: MemcachedBackupSessionManager starts initialization... (configured nodes definition n1:192.168.3.4:11211, failover nodes null) Jun 24, 2011 2:38:00 PM de.javakaffee.web.msm.SessionTrackerValve <init> INFO: Setting ignorePattern to .*\.(png|gif|jpg|css|js|ico|jpeg|htm|html)$ Jun 24, 2011 2:38:00 PM de.javakaffee.web.msm.MemcachedBackupSessionManager setLockingMode INFO: Setting lockingMode to null Jun 24, 2011 2:38:00 PM de.javakaffee.web.msm.MemcachedBackupSessionManager createTranscoderFactory INFO: Creating transcoder factory de.javakaffee.web.msm.serializer.kryo.KryoTranscoderFactory Jun 24, 2011 2:47:12 PM org.apache.catalina.core.AprLifecycleListener init INFO: The APR based Apache Tomcat Native library which allows optimal performance in production environments/jdk1.6.0_25/jre/../lib/amd64:/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib Jun 24, 2011 2:47:13 PM org.apache.tomcat.util.digester.SetPropertiesRule begin WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '0' did not fin Jun 24, 2011 2:47:13 PM org.apache.tomcat.util.digester.Digester startElement SEVERE: Begin event threw exception java.lang.ClassNotFoundException: de.javakaffee.web.msm.MemcachedBackupSessionManager     at java.net.URLClassLoader$1.run(URLClassLoader.java:202)     at java.security.AccessController.doPrivileged(Native Method)     at java.net.URLClassLoader.findClass(URLClassLoader.java:190)     at java.lang.ClassLoader.loadClass(ClassLoader.java:306)     at java.lang.ClassLoader.loadClass(ClassLoader.java:247)     at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:205)     at org.apache.tomcat.util.digester.Rule.begin(Rule.java:153)     at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1356)     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:     at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocu     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocume     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next     at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:6     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFr     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)     at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)     at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)     at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1642)     at org.apache.catalina.startup.Catalina.load(Catalina.java:510)     at org.apache.catalina.startup.Catalina.load(Catalina.java:548)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)     at java.lang.reflect.Method.invoke(Method.java:597)     at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) Jun 24, 2011 2:47:13 PM org.apache.catalina.startup.Catalina load WARNING: Catalina.start using conf/server.xml: java.lang.ClassNotFoundException: de.javakaffee.web.msm.MemcachedBackupSessionManager     at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2806)     at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2832)     at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1359)     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:     at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocu     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocume     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next     at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:6     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFr     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)     at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)     at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)     at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1642)     at org.apache.catalina.startup.Catalina.load(Catalina.java:510)     at org.apache.catalina.startup.Catalina.load(Catalina.java:548)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)     at java.lang.reflect.Method.invoke(Method.java:597)     at org.apache.catalina.startup.Bootstrap.load(Bootstrap.java:261)     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413) Caused by: java.lang.ClassNotFoundException: de.javakaffee.web.msm.MemcachedBackupSessionManager     at java.net.URLClassLoader$1.run(URLClassLoader.java:202)     at java.security.AccessController.doPrivileged(Native Method)     at java.net.URLClassLoader.findClass(URLClassLoader.java:190)     at java.lang.ClassLoader.loadClass(ClassLoader.java:306)     at java.lang.ClassLoader.loadClass(ClassLoader.java:247)     at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:205)     at org.apache.tomcat.util.digester.Rule.begin(Rule.java:153)     at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1356)     ... 20 more Jun 24, 2011 2:47:13 PM org.apache.tomcat.util.digester.SetPropertiesRule begin WARNING: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'debug' to '0' did not fin Jun 24, 2011 2:47:13 PM org.apache.tomcat.util.digester.Digester startElement SEVERE: Begin event threw exception java.lang.ClassNotFoundException: de.javakaffee.web.msm.MemcachedBackupSessionManager     at java.net.URLClassLoader$1.run(URLClassLoader.java:202)     at java.security.AccessController.doPrivileged(Native Method)     at java.net.URLClassLoader.findClass(URLClassLoader.java:190)     at java.lang.ClassLoader.loadClass(ClassLoader.java:306)     at java.lang.ClassLoader.loadClass(ClassLoader.java:247)     at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:205)     at org.apache.tomcat.util.digester.Rule.begin(Rule.java:153)     at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1356)     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:     at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocu     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocume     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next     at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:6     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFr     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)     at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)     at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)     at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1642)     at org.apache.catalina.startup.Catalina.load(Catalina.java:510)     at org.apache.catalina.startup.Catalina.start(Catalina.java:568)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)     at java.lang.reflect.Method.invoke(Method.java:597)     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) Jun 24, 2011 2:47:13 PM org.apache.catalina.startup.Catalina load WARNING: Catalina.start using conf/server.xml: java.lang.ClassNotFoundException: de.javakaffee.web.msm.MemcachedBackupSessionManager     at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2806)     at org.apache.tomcat.util.digester.Digester.createSAXException(Digester.java:2832)     at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1359)     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:     at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocu     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocume     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next     at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:6     at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFr     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:808)     at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:737)     at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:119)     at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1205)     at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)     at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1642)     at org.apache.catalina.startup.Catalina.load(Catalina.java:510)     at org.apache.catalina.startup.Catalina.start(Catalina.java:568)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)     at java.lang.reflect.Method.invoke(Method.java:597)     at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:414) Caused by: java.lang.ClassNotFoundException: de.javakaffee.web.msm.MemcachedBackupSessionManager     at java.net.URLClassLoader$1.run(URLClassLoader.java:202)     at java.security.AccessController.doPrivileged(Native Method)     at java.net.URLClassLoader.findClass(URLClassLoader.java:190)     at java.lang.ClassLoader.loadClass(ClassLoader.java:306)     at java.lang.ClassLoader.loadClass(ClassLoader.java:247)     at org.apache.tomcat.util.digester.ObjectCreateRule.begin(ObjectCreateRule.java:205)     at org.apache.tomcat.util.digester.Rule.begin(Rule.java:153)     at org.apache.tomcat.util.digester.Digester.startElement(Digester.java:1356)     ... 20 more Jun 24, 2011 2:47:13 PM org.apache.catalina.startup.Catalina start SEVERE: Cannot start server. Server instance is not configured.     这个问题怎么解决 ?要导入哪些包? 我现在导入了 memcached-session-manager-1.4.0.jar memcached-2.5.jar kryo-1.03.jar minlog-1.2.jar reflectasm-0.9.jar asm-3.2.jar kryo-serializers-0.8.jar msm-kryo-serializer-1.4.0.jar javolution-5.4.3.1.jar msm-javolution-serializer-1.4.0.jar xstream-1.3.1.jar xpp3_min-1.1.3.4.O.jar msm-xstream-serializer-1.4.0.jar 都放到了 tomcat lib中 ######问题解决了吗?######cookie 可保存少量信息,如果有更多的信息可用memcached集中保存。 这样可以屏蔽调session管理

kun坤 2020-06-20 10:54:56 0 浏览量 回答数 0

回答

所谓回调,就是客户程序C调用服务程序S中的某个函数A,然后S又在某个时候反过来调用C中的某个函数B,对于C来说,这个B便叫做回调函数。例如Win32下的窗口过程函数就是一个典型的回调函数。一般说来,C不会自己调用B,C提供B的目的就是让S来调用它,而且是C不得不提供。由于S并不知道C提供的B姓甚名谁,所以S会约定B的接口规范(函数原型),然后由C提前通过S的一个函数R告诉S自己将要使用B函数,这个过程称为回调函数的注册,R称为注册函数。Web Service以及Java的RMI都用到回调机制,可以访问远程服务器程序。 下面举个通俗的例子: 某天,我打电话向你请教问题,当然是个难题,^_^,你一时想不出解决方法,我又不能拿着电话在那里傻等,于是我们约定:等你想出办法后打手机通知我,这样,我就挂掉电话办其它事情去了。过了XX分钟,我的手机响了,你兴高采烈的说问题已经搞定,应该如此这般处理。故事到此结束。这个例子说明了“异步+回调”的编程模式。其中,你后来打手机告诉我结果便是一个“回调”过程;我的手机号码必须在以前告诉你,这便是注册回调函数;我的手机号码应该有效并且手机能够接收到你的呼叫,这是回调函数必须符合接口规范。 通过上面个人感觉到回调更多的应用就是结合异步。比如:Ajax中js通过组件和服务器的异步通信。 “答案来源于网络,供您参考” 希望以上信息可以帮到您!

牧明 2019-12-02 02:16:13 0 浏览量 回答数 0

问题

一台tomcat服务器,应对峰值200人的压力,为何会卡。403.10 禁止访问:配置无效 

kun坤 2020-05-28 13:24:42 3 浏览量 回答数 1

问题

【javascript学习全家桶】934道javascript热门问题,阿里百位技术专家答疑解惑

管理贝贝 2019-12-01 20:07:22 6202 浏览量 回答数 1

问题

jQuery 回调函数不执行

a123456678 2019-12-01 20:20:22 916 浏览量 回答数 1

回答

一般好像都是这么干的1.一个链接上包含一些参数。2.然后请求到对应的控制器,由控制器查询数据。3.服务器内部请求转发,forward到对应的模板页。4.模板页使用jstl标签或者java脚本对数据进行渲染。还有一种常见的方案是但用的没上面这种多:1.一个链接包含一些参数。2.然后请求直接响应到这个页面,在这个页面上直接将参数放到DOM中,像这样3.之后通过js读取DOM中的请求参数,发起Ajax请求,获取数据(多为json数据,也有xml或者直接字符串).4.在控制器中查询数据,然后通过org.json等工具包,转成json字符串,将字符串作为响应正文发送。5.js通过回调函数读取数据渲染多说两句,一个页面的请求数最好不要太多,浏览器对同一个域名的请求是有并发数量限制的(http1.1, 好像新的http2没有这个问题)。Ajax请求的数据太多导致等待时间较长时,最好准备一个loading的动画。另外很多时候是两者混用的。例如一个 个人中心 之类的页面。 页面头部个人资料之类的信息,通过第一种直接在响应时显示。旁边的tab标签每点击一个,内容展示的DOM通过AjaxLload一次。当然还有一种做法是把所有数据都放到DOM里,点击tab标签,通过控制DOM的display进行展示。

蛮大人123 2019-12-02 02:03:18 0 浏览量 回答数 0

回答

加断点,慢慢找把 出错信息不是告诉你了吗?document元素上没有名字空间。 第二行也告诉你了,是读什么版本的时候出错的。那百度一下soap版本不就解决了回复<aclass="referer"target="_blank">@chbtemp:我调远程的webservice接口服务端,格式是按照规定的格式拼接,soap版本的问题? 这个问题引起的原因是编码解析问题,用js写的var类型的参数,对方接收到还是会以java编写的进行处理、解析,这就会导致对方解析失败,从而出现一些未知的错误。

爱吃鱼的程序员 2020-06-08 14:07:29 0 浏览量 回答数 0

回答

" Java开发者的安全性有待提高呀,居然用root超级用户跑Tomcat服务进程.可以用start-stop-daemon指定用户运行守护进程. 话说Java服务器都这么吃内存的么?居然占用了18个GB. 还有,我查了,E5-4603 v2是一个4核心的CPU,你的服务器有2个CPU,那总的核心数就是8个.这时,top命令在Tasks进程模式下(你的截图就是这个模式),一个任务(进程)利用全部CPU资源时,%CPU应该显示为800%.很多人用惯了Windows,想当然的认为任务的CPU使用率最大值是100%.在Linux上,一个包含多线程的任务进程,CPU使用率超过100%就表示使用超过1个核心,比如我在Ubuntu桌面上使用的Firefox浏览器,其就是一个典型的多线程应用. <img alt="""" height=""69"" src=""https://static.oschina.net/uploads/space/2017/0314/190655_U05T_561214.png"" width=""567"" /> 我的笔记本处理器是双核4线程的i5-3230M,CPU满载时最大显示400%. 如果你把top命令从Tasks任务进程模式切换到Threads线程模式,则任一线程的%CPU都不能超过100%,比如: top -H -p pidof firefox (参数-H表示使用Threads线程模式观测) 可见: <img alt="""" height=""603"" src=""https://static.oschina.net/uploads/space/2017/0314/191357_XH4d_561214.png"" width=""352"" /> 所以你可以在这个Threads线程模式下看看到底是那个Java线程占用了1个CPU核心,对于C程序(如Nginx/PHP-FPM)一般都是用sudo strace -p PID来跟踪系统调用来发掘问题,对Java程序,也可以用strace看看,不过Java不是还有像jstat这种专门的东西么?######还有top里的TIME+列也很有意义,表示该任务(进程或线程)启动后使用的总的 CPU 时间.比如1:23.45代表1分钟23.45秒.######你这是地图炮了######我的截图里,top里面还有一个P列,这个可以在top里按f进去设置把它调出来,表示的是程序最后使用的CPU核心编号(Last Used Cpu),我的处理器核心只有4个,所以P的取值只能是:0, 1, 2, 3###### 找个晚上,自己压压看~~可以用 JMeter gattling,慢慢增加人数,同时观察 CPU######回复 <a href=""https://my.oschina.net/u/3356111"" class=""referer"" target=""_blank"">@XhuiFly : 你是说 JS 卡吗? 那你都知道原因了,直接 review JS 代码啊######回复 <a href=""https://my.oschina.net/u/3356111"" class=""referer"" target=""_blank"">@XhuiFly : 外包的业务每人关心性能的,之前遇到过,主要是调数据库的问题######登录的人再多的不会卡,就是部分操作比如选择商品后有大量的js代码做检验,这个工具能跟踪出来么?###### 查一下应用代码吧###### 外包都是草草了事,负责的外包企业少之又少###### 呵呵了,死循环可以99%  空跑看看######应该不是死循环,同样的操作重启后就没问题。###### top -Hp pid jstack pid###### 如果不想花太多时间查问题,在不影响使用的前提下,跑一个crontab定时任务,每天晚上自动重启一次吧。######我倒是做了一个重启的脚本,就是怕这玩意哪天突然启不了怎么办…担心稳定性###### hashmap死循环?###### 你看下数据库那台机器怎么样,如果数据库那台机器正常的话,那就是你的应用代码写的有问题,看下是不是什么线程在搞事情,jstack pid号。###### 这种现象,问题基本都是在应用层代码上。"

kun坤 2020-06-09 23:38:18 0 浏览量 回答数 0

问题

企业应用接入的开发

kangknag 2019-12-01 21:18:58 3641 浏览量 回答数 1

问题

Serverless 工作流

黄一刀 2020-04-03 23:50:42 117 浏览量 回答数 1

回答

jsoup 了解一下######htmlunit######打产品经理一顿辞职就好了��######这个实现起来也很简单,分析好登录的状态,http模拟登录,然后按照规则去页面下载数据就可以了######走页面还是走请求?######没办法实现######Selenium,解决问题######我以前做过,用javafx做一个简单的界面,放一个webbrowser,模拟点击登录,用js发请求,拿到的数据调JAVA存储,我们的需求就要有界面��######   无可奉告!  根据手机壳颜色改变app主题颜色,只能单挑了######不同网站登录机制不一样。省事点就selenium,就是性能太差如果能接受的话。验证码是大坑,如果有的话。

kun坤 2020-06-08 13:15:43 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 企业信息查询 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 企业建站模板