百度 Java BAE

基于Java Web服务(Webservices)接口获取实时股票(Stock)交易代码实例 下面的代码是作者原创,转载请注明出处。   package stock; import java.net.URL; import java.text.DecimalFormat; import java.util.ArrayList; import java.util.List; import javax.xml.namespace.QName; import javax.xml. 阅读详情

自己总结了一些在部署Java版的BAE中,得到的经验。

1. 邀请码申请

不做详述,最好描述一下团队组员情况

2. 环境搭建问题

前提是你知道SVN插件的安装以及BAE插件安装。无误后,按照以下步骤进行:

2.1. checkout相应工程的版本号

下图所示的为某个工程的版本号1

 

2.2转化成BAE工程

checkout出来的工程,为一个普通的工程, 因此需要转化成BAE工程。同时,Checkout出来的工程是有编译错误的,只有转化为BAE,才能将IDE的环境搭建好。编译无问题。

 

2.3 规范化项目名称,方便管理

1. 修改.project文件, 将工程名修改为自己需要的工程名称, 如下图所示


2. 同时在工程名称上按F2, 重命名为修改的工程名,并提交修改

3. 编译问题

3.1 静态变量无法常驻内存

每次Servlet的调用,都会重新开启一个ClassLoader,因此,你无需写单例模式了。即使是同一个客户端调用,BAE也会重新加载一个Servlet. 所以,变量是无法维系的。

陈葵<for_lich> 2012-10-22 20:03:19

回复 ostrichmyself: 请问BAE中,Java的静态成员变量每次都会被释放, 请问有什么替代方案吗? 可以让变量常驻内存 静态成员变量并没有每次被释放

陈葵<for_lich> 2012-10-22 20:04:34

只不过bae java环境是分布式集群环境,你的请求会随机分到某个web server处理。这种情况下你应该将数据保存在云数据库或cache服务当中

ostrichmyself 10:04:20

cache服务 是指什么? 请大牛提供相关资料、

ostrichmyself 10:06:25

java分布式集群环境, 同一个客户端对服务端发起请求, static变量需要重新new, 貌似也不符合规则吧

上吊de鱼<tianice1234> 10:08:47

集群的负载均衡没有黏贴session,session做的复制,当然符合规则了


孟宪森<tjudream> 10:10:06

回复 ostrichmyself: cache服务 是指什么? 请大牛提供相关资料、 http://developer.baidu.com/wiki/index.php?title=%E5%B8%AE%E5%8A%A9%E6%96%87%E6%A1%A3%E9%A6%96%E9%A1%B5/%E4%BA%91%E7%8E%AF%E5%A2%83/JAVA%E6%9C%8D%E5%8A%A1%E5%88%97%E8%A1%A8/Cache

首页>帮助文档首页>云环境>JAVA服务列表>Cache



具体使用的方式是: 

  1. BaeMemcachedClient a = new BaeMemcachedClient();  
  2.   
  3. Object obj = a.get("XXX");  
  4. if (obj == null)  
  5. {  
  6.     //注意, mgrIndtance 需要是可序列化的实例,即其本身以及内部的对象都实现Serialiable接口   
  7.     boolean value = a.add("XXX", mgrIndtance);  
  8.                       //返回true,则表示增加进去了,如果非序列化对象则会返回为false   
  9. }  
		BaeMemcachedClient a = new BaeMemcachedClient();

		Object obj = a.get("XXX");
		if (obj == null)
		{
			//注意, mgrIndtance 需要是可序列化的实例,即其本身以及内部的对象都实现Serialiable接口
			boolean value = a.add("XXX", mgrIndtance);
                        //返回true,则表示增加进去了,如果非序列化对象则会返回为false
		}


但这个会带来新问题:

重新发布版本,不会让Cache清空, 这个时候,建议写一个独立的Clean Servlet,  系统调用的时候, 将这些cache delete掉,这个是我暂时能想到的方法.

  1. boolean delResult = cache.delete(ConstantConf.KEY_CACHE_CONF_MGR);  
boolean delResult = cache.delete(ConstantConf.KEY_CACHE_CONF_MGR);

当然这个Servlet会独立调用, 最好传入用户名和密码进行身份验证,避免不必要的清空(我的应用就是这这么做的)。

1. 需要更新时,  不要以为从 MemCache中获取对象的引用, 更改完后能保存到MemCache中,  这样做是无效的, 正确的做法:  用set方法, 将这个引用重新设置, 才能保存!


2. MemCache中存在的对象, 都需要采用序列化接口

3.2 Jar包统一放入lib文件夹,无需写配置

由于本地环境配置了com.baidu.bdt.bae.java.SDK_CONTAINER,所以,很多jar包都在本地编译和运行无误,但是部署到BAE服务器将报错。

典型的例子:

1. JSON解析

2. xml 解析

 

建议将IDE环境下用到的包,全部Copy到工程路径的lib目录下,IDE环境下包的位置为:

Eclipse根目录plugins\com.baidu.bdt.bae.java.sdkbundle_1.5.0.201210091104\sdk\

com.baidu.bae.api.lib

3.3 乱码导致BAE服务端发布失败

一旦BAE发布不成功,并且查看日志,出现下面的乱码, 需要修改编码方式:

2012-10-2210:50:350 [javac] /*??????????*/

 

BAE服务端默认的编码为UTF-8, 因此我们建议统一编码为UTF-8,修改方式如下图所示:

 

 

修改的时候,文本文件中中文部分将变成乱码,注意修改这些乱码。


3.4  添加用户日志


Log4j.properties文件放在WEB-INFO根目录下

选择对应版本查看日志, 已经发布的版本,查看线上版本。 这个非常有用, 因为BAE服务端的环境跟客户端的环境完全不同, 服务端定位问题,不能靠Debug,只能用打印日志的方式。

另外,对于BAE提供的功能, 做充分的测试之后再使用, 比如利用其中一个配额的工程,专门做测试。 不轻易使用产品库做实验。 这样避免带来资源的浪费,以及管理的不便。

4. 发布环境

提交代码即可发布,不过要等待的时间非常久. 不需要Deploy to BAE


Springboot多连接池+websocket Springboot多连接池+websocket,相关详细技术说明可进入我的优快云看博文哦~~如果有问题可在csdn上留言或者通过QQ694335719联系 立即下载

相关推荐

GROMACS+PLUMED联合安装避坑指南:为什么你的plumed patch总是失败?

本文深入解析GROMACS与PLUMED联合安装中补丁失败的常见原因,并提供详细的避坑指南。针对版本兼容性、环境配置和编译选项等关键问题,给出从源码选择、环境搭建到手动合并补丁的完整解决方案,帮助用户成功整合这两个强大的分子动力学工具,实现增强采样模拟。

weixin_29302047的博客 287

Java使用WebStocket实现前后端互发消息

记录一下自己使用WebStocket实现服务器主动发消息的过程和踩得雷。需求:车牌识别系统识别到车牌后,持续向前端推送车牌信息,直到前端回复收到。测试需求:新增 客户后,持续向前端推送客户信息,直到前端收到消息,并且回复收到。

qq_58030790的博客 7503

C++实现设计ATM机系统

这个示例实现了一个基本的ATM机系统,支持注册、登录、存款、取款、查询余额和保存数据等功能。当然,这只是一个简单的ATM机模拟,实际的ATM机系统需要更复杂的逻辑和更严格的安全措施。C++编写一个简单的ATM机系统,我将提供一个基本的实现示例,但由于ATM机系统的复杂性和安全性要求,这只是一个简单的模拟,不适合在实际环境中使用。试设计一简单模拟ATM机系统,系统以菜单方式工作,采用自定义函数设计各功能模块被主菜单调用,使之能提供以下基本选项。=========欢迎使用ATM=========

走向CTO的路上... 1241

java实现聊天室(websocket)

java实现聊天室(websocket)

m0_71817461的博客 4123

【升级U8+】不能将值 NULL 插入列 ‘VT_ID‘,表 ‘VoucherItems‘;列不允许有 Null 值。

不能将值 NULL 插入列 ‘VT_ID’,表 ‘UFDATA_006_2012.dbo.VoucherItems’;列不允许有 Null 值。INSERT 失败。

努力不懈的为广大客户提供优质的产品与真诚、贴心、专业的服务! 513

Java全栈:电影数据检索与推荐系统实战

全文检索个性化推荐数据缓存容器化部署通过这个项目,我们不仅实践了Java全栈开发的各项技术,还接触了推荐系统的核心算法实现。用户历史行为数据物品特征数据上下文信息实时反馈算法的准确性推荐的多样性系统的实时性冷启动问题性能优化效果评估VIEW, // 浏览CLICK, // 点击SEARCH, // 搜索RATE, // 评分COMMENT, // 评论SHARE, // 分享WATCH_TIME, // 观看时长。

exlink2012的专栏 890

Java-Web篇-Socket

Socket(套接字)是计算机网络编程中的一种抽象概念,它提供了在网络上进行通信的接口。通过使用 Socket,可以在不同计算机之间建立连接,并进行数据的传输和交换。

const_wu的博客 3562

OpenHarmony RK3568 从 32 位切换到 64 位用户空间指南

修改了编译参数(如修复 Q5 后),但 ThinLTO 缓存中保留了旧参数编译的 bitcode。这是一种节省内存的设计(32 位指针占 4 字节 vs 64 位占 8 字节),但在某些场景下需要切换为纯 64 位。切换到 64 位用户空间后,CPU 全程运行在 AArch64 状态,不再需要 AArch32 兼容模式。内核本身已经是 64 位(aarch64),切换用户空间位数不影响内核。(32 位兼容层)在纯 64 位系统中不再需要,可以关闭以减小内核体积。这两个参数对 64 位编译毫无意义,配合。

程小二的博客 688

websocket基于java实现

随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了。近年来,随着HTML5的诞生,WebSocket协议被提出,。我们知道,传统的HTTP协议是无状态的,每次请求(request)都要由客户端(如 浏览器)主动发起,服务端进行处理后返回response结果,而;这种客户端是主动方,服务端是被动方的传统Web模式 对于信息变化不频繁的Web应用来说造成的麻烦较小,而对于涉及实时信息的Web应用却带来了很大的不便,如带有即时通信、实时数据、订阅推送等功能的应 用。。

weixin_37750248的博客 3390

从码农到生态建造者:我的一人公司运作方案

华哥·OPC 运营方案 v1.0 - 第一次迭代 🚀,搭建闭环生态系统,赋能 AI 时代的超级个体,更好的做自己,同时照亮别人。

AaronZZH 的博客 994

RK平台内核“大瘦身”:从4GB到500MB的蜕变之旅

摘要:本文详细介绍了RK平台内核裁剪的完整流程与技术要点。通过对RK3568/RK3588等SoC平台的分析,探讨了从初始4GB内核精简至500MB的具体方法。文章系统阐述了前期硬件环境搭建、软件工具准备、SDK源码获取等准备工作,深入解析了内核模块组成及可裁剪部分,并提供了图形化配置界面的详细操作指南。同时,对编译烧录过程和常见问题解决方案进行了说明,强调了备份和谨慎选择裁剪项的重要性。最后展望了内核裁剪技术在物联网和边缘计算等领域的应用前景,为开发者提供了实用的内核优化参考方案。(148字)

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 441

使用百度BAE部署java应用

使用百度BAE部署java应用 百度开放云是一个云计算服务平台,其中的应用引擎BAE是一个可以用来部署各种语言开发的应用(比如:我写的一个java web网站)的服务,通俗说就是相当于服务器,可以把你的网站发布到网上,让别人也能访问到。初次使用,折腾了一天总算搞定了。但作为小白,BAE官方帮...

chuchensi7657的博客 324

coze 怎么读取excel文件,使用循环,数据库完成LLM问答并存储

本文介绍了如何在Coze平台实现"Excel读取+循环处理+LLM问答+数据库存储"的工作流。主要分为三个步骤:1)使用代码节点解析Excel文件为问答对数组;2)通过循环节点遍历问答对,调用LLM节点生成回答;3)利用数据库节点将问答结果存储到Coze内置数据库中。文中提供了代码示例和节点配置说明,并强调了注意事项如Excel格式要求、LLM调用频率控制等。该工作流适用于批量构建知识库问答系统并持久化存储结果。

ZhangJiqun&191cm&85kg 1783

百度云BAE上Java ssh项目的部署教程

1.去百度开发者下载一个一键安装的eclipse(推荐)    地址:http://developer.baidu.com/wiki/index.php?title=docs/cplat/ide/install    或者自己安装插件(比较麻烦)   2.打开之前下载好的eclipse,切换到SVN资源库,新建资源库.url填上下面的SVN地址   3.然后右击-检出为

K2Fibre 6559

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

百度开发者中心BAE新建Java应用

转自:http://www.blogjava.net/qiyadeng/archive/2013/04/21/398152.html 1.申请开发者帐号 首先注册百度的帐号,然后申请成为百度开发者(需要通过手机进行身份证验证)。 2.新建应用 点击菜单中的创建应用,我们目前选择的是Web应用。 应用创建之后,选择左边菜单的云环境

Gabriel的专栏 4019

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

百度BAE JAVA环境项目部署和调试

起初在一个应用挂在虚拟主机上,昨天早上虚拟主机挂了。本来考虑迁移到SAE上的,但之前发现SAE的JVM云豆消耗的太快(PS:我是中级开发者,每月10000云豆,如果有哪位大神对SAE JAVA云豆能控制的好的请私密我一下,在此谢谢了),只能考虑百度的BAE了。 之前有玩过几次BAE,不过都是小程序,很简单,随便弄弄就好了。现在面对的是一个在虚拟主机上跑了3个月的项目做迁移。顿时头疼了。无从下

iShareStudio 1773

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

百度开发者中心如何创建mysql数据库_百度开发者中心BAE新建Java应用

1.申请开发者帐号首先注册百度的帐号,然后申请成为百度开发者(需要通过手机进行身份证验证)。2.新建应用点击菜单中的创建应用,我们目前选择的是Web应用。应用创建之后,选择左边菜单的云环境,环境类型需要选择JAVA。并新创建一个版本,输入1作为版本号3.在百度集成开发环境中开始开发百度提供了基于Eclipse的插件,由于该插件不能支持最新的Eclipse版本。建议下载百度的一键安装版本。百度文档中...

weixin_28872105的博客 355

bae java mysql_BAE百度云平台的mysql数据库的施用(Java)

BAE百度云平台的mysql数据库的使用(Java)BAE的数据库使用的mysql,还有phpmyadmin,怎么说呢,太像那种php空间了。不过都是免费的哈~~第一个问题就是连接数据的问题。做了一个简单的聊天室项目,打算放上去试试。BAE的数据库连接的用户名和密码需要从request请求中获取。只有数据库名是我们可以直接拿来用的。定义一个JdbcUtil类。用来获取连接。为了节省代码,直接写成 ...

weixin_35214204的博客 104

bae mysql_BAE百度云平台的mysql数据库的施用(Java)

百度云BAE百度云平台的mysql数据库的使用(Java)BAE的数据库使用的mysql,还有phpmyadmin,怎么说呢,太像那种php空间了。不过都是免费的哈~~第一个问题就是连接数据的问题。做了一个简单的聊天室项目,打算放上去试试。BAE的数据库连接的用户名和密码需要从request请求中获取。只有数据库名是我们可以直接拿来用的。定义一个JdbcUtil类。用来获取连接。为了节省代码,直接...

weixin_42138545的博客 190

bae php mysql_BAE百度云平台的mysql数据库的施用(Java)

BAE百度云平台的mysql数据库的使用(Java)BAE的数据库使用的mysql,还有phpmyadmin,怎么说呢,太像那种php空间了。不过都是免费的哈~~第一个问题就是连接数据的问题。做了一个简单的聊天室项目,打算放上去试试。BAE的数据库连接的用户名和密码需要从request请求中获取。只有数据库名是我们可以直接拿来用的。定义一个JdbcUtil类。用来获取连接。为了节省代码,直接写成 ...

weixin_39911066的博客 110

游戏公司营收腰斩亏损9000万,海外占比22%背后的发行策略与生存路径

游戏行业产品周期与成本结构决定了营收波动是常态,理解LTV/CAC、买量ROI等核心指标是评估发行效率的基础。海外市场因区域分散、渠道多元,成为中小游戏公司分散风险、延长产品生命周期的重要方向。本地化、合规与支付通道等工程实践直接影响海外收入占比的含金量。在亏损压力下,研发投入的刚性与买量策略的效率优先需要平衡,保住核心团队与现金流是穿越低谷的关键。本文从营收腰斩、亏损9000万、海外占比22%三个数字切入,拆解游戏公司的账本逻辑与海外发行实操。

weixin_33991418的博客 310

bae java mysql_在百度bae云平台中使用JAVA连接MySQL数据库

在百度bae云平台中使用JAVA连接MySQL数据库2014-07-13 16:41来源:中国存储网导读:BAE的数据库使用的mysql,还有phpmyadmin,怎么说呢,太像那种php空间了。不过都是免费的哈~~第一个问题就是连接数据的问题。做了一个简单的聊天室项目,打算放上去试试。BAE的数据库连接的用户名和密码需要从request请求中获取。只有数据库名是BAE的数据库使用的mysql,还...

weixin_39709194的博客 125
上一篇: 切割UIView,并只让局部响应点击事件
下一篇: Android开发环境搭建
focusjava
博客等级 码龄14年 127粉丝 528原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值