A. K3金蝶软件客户端显示BOS部署包客户端智能升级失败原因远程服务器不存在或不可用 这个问题是怎么解决的
跟本地账号变化有关系。打开管理工具-组件服务-计算机-我的电脑-COM+应用程序 ,选择所有管理员的组件,右键属性-标识,下列用户,输入正确的账号即可。
B. 金蝶Apusic中间件中部署 SuperMap iServer
一、系统配置要求
本文使用软件版本为 iServer 8.1.1 、 金蝶 9.0 ;64位操作系统为 Windows 10_1607 和 Ubuntu 14.04_server 。
文件如下:
supermap_iserver_8.1.1a_war.zip
AAS-V9.0_20170309.zip
Windows 和 linux 下安装部署过程相同 。
二、安装金蝶
金蝶中间件需要jdk环境,所以需要先安装jdk,jdk版本应同时高于金蝶、iServer要求的版本。本文使用的金蝶要求jdk1.6及以上、iServer 8.1.1要求jre1.8及以上,所以这里使用 JDK1.8 (64位)。
安装JDK
可以使用安装包也可以使用解压包,这里省略。
安装金蝶
解压 AAS-V9.0_20170309.zip 文件即可,本文解压到以下目录:
Windows : F:WORKAAS
Linux : /opt/AAS
配置金蝶许可
将收到的许可文件重命名为 license.xml 放到金蝶解压目录即可,本文放到以下目录:
Windows : F:WORKAAS
Linux : /opt/AAS
启动、关闭&管理金蝶服务
可以通过脚本启动金蝶中间件。脚本位置:
Windows 下: {金蝶安装目录}domains{域}instartapusic.cmd、stopapusic.cmd (双击或cmd窗口运行)
Linux 下: {金蝶安装目录}/domains/{域}/bin/startapusic、stopapusic (bash或sh startapusic或stopapusic)
默认域是mydomain,所以本文的启动关闭脚本路径是:
Windows : F:.cmd、stopapusic.cmd
Linux : /opt/AAS/domains/mydomain/bin/startapusic、stopapusic
首次启动验证许可通过后,会提示设置管理员密码,管理员用户名是: admin
管理金蝶服务
浏览器访问:
http://{hostname}:6888/admin
本机访问可以将{hostname}替换成localhost或127.0.0.1;非本机访问则使用域名或IP。
其他可以参考金蝶安装目录下的 readme.html 。
部署iServer
解压 supermap_iserver_8.1.1a_war.zip 得到以下文件:
support_win_x64.zip (Windows下iServer依赖的SuperMap iObjects java包)
support_linux_x64.tar.gz (Linux下iServer依赖的SuperMap iObjects Java包)
iserver.war (iServer部署包)
iserver#iClient.war (iServer自带iClient示范程序部署包)
iserver#help.war (iServer自带帮助文档部署包)
Guide_smiserver_war_chn.pdf (iServer安装说明)
BUILD_14511_15 (iServer版本号)
在金蝶中部署,需要先将 iserver#iClient.war 、 iserver#help.war 依次重命名为: iClient.war 、 help.war 。
配置iServer依赖环境
Windows上解压 support_win_x64.zip ,本文解压到 D:SuperMap。
Linux上解压 support_linux_x64.tar.gz (命令:tar -zxvf {*.tar.gz文件} {解压路径,不写解压到当前路径}),本文解压到:/opt
配置iServer依赖环境的方式有两种:设置系统环境变量、修改中间件相关脚本。
方式一:设置环境变量
本文在PATH中增加以下路径:
Windows: D:SuperMapsupport_win_x64objectsjavain
Linux: /opt/support_linux_x64/objectsjava/bin
方式二:修改启动脚本
Windows下, { 金蝶安装目录 }domains{ 域 }insetenv.cmd 或者 { 金蝶安装目录 }insetenv.cmd 文件第一行之后,比如rem set JAVA_HOME variable here.这句注释之后添加以下内容,本文:F:WORKAASinsetenv.cmd:
rem rem后面的是注释,也可以在这里设置中间件使用的jdk路径
rem set JAVA_HOME=D:Program FilesJavajdk1.8.0_66
set PATH=D:SuperMapsupport_win_x64objectsjavain;%PATH%
Linux下, { 金蝶安装目录 }/domains/{ 域 }/bin/setenv 或者 { 金蝶安装目录 }/bin/setenv 文件第一行之后,比如# set JAVA_HOME variable here.这句注释之后添加以下内容,本文:/opt/AAS/bin/setenv:
# #后面的是注释,也可以在这里设置中间件使用的jdk路径
#JAVA_HOME=/opt/jdk1.8.0_66
PATH=/opt/support_linux_x64/objectsjava/bin:$PATH
检查iServer依赖环境&安装iServer许可
Linux下,可以通过运行 support_linux_x64.tar.gz 解压目录下的一个脚本来检查安装iServer依赖,先进入该目录,然后执行以下命令:
./dependencies_check_and_install.sh install -y
若安装的iServer没有该脚本,请参考iServer帮助文档解决Linux下依赖问题。
安装许可
Windows下,进入 support_win_x64.zip 解压目录下的 SuperMapLicenseCenter 目录,运行 SuperMap.LicenseCenter.exe 即可,初次安装SuperMap GIS软件运行该程序会安装许可驱动并自带3个月试用许可。
Linux下,进入 support_linux_x64.tar.gz 解压目录/SuperMap_License/Support下,执行以下操作:
tar -xvf aksusbd-2.4.1-i386.tar #解压许可驱动安装包,以实际版本为准
cd aksusbd-2.4.1-i386 #进入安装目录,以实际解压目录为准
./dinst #安装许可驱动
首次安装自带3个月试用许可。
部署iServer
将 iserver.war 、 iClient.war 、 help.war 放到 { 金蝶安装目录 }/domains/{ 域 }/applications 目录下即可,比如本文放到以下目录:
Windows : F:
Linux : /opt/AAS/domains/mydomain/applications
可以在金蝶Web管理控制台应用管理中管理iServer,如图:
修改金蝶设置
金蝶中间件中可能限制了http方法,此时需要修改中间件设置。浏览器访问金蝶Web管理控制台,在系统参数-Apusic参数中删除 apusic.http.disabledMethod 项,如图:
若有http请求方法限制,上述修改操作完成后,需要 重启金蝶 。
部署完成,iServer访问地址: http://{IP 或域名 }:6888/iserver (以金蝶Web管理控制台-应用管理-查看应用模块-访问应用进入的地址为准)。
C. 金蝶Apusic应用服务器的简单分析
1.1. 基于工业标准和规范的解决方案 Apusic遵循的相关工业标准、规范和已实现的API如下:
1.1.1. J2EE?相关
RMI/IIOP
JDBC?3.0及JDBC?2.0扩展
EJB?2.0
EJB?1.1
Servlets2.3
JSP?1.2
JMS1.1
JTS
JTA1.0
JCE1.2
JSSE
JavaMail?1.2
JAF1.0
JAXP1.1
JNDI
JMX1.2
JAAS
JSR-77
1.1.2. XML相关规范
XML1.0
XML Namespaces 1.0
SAX 2.0 API
DOM Level 2 Core Recommendation
XSL 1.0
1.1.3. WebServices相关规范
JAX-RPC1.0
JAXM1.1
SAAJ1.1
JAXR1.0
SOAP1.1
SOAP with Attachments
WSDL1.1
UDDI2.0
1.1.4. Internet相关协议及标准
TCP/IP protocol family
HTTP 1.0
SSL 3.0
以下依次介绍
服务器特性:
除提供了对以上规范、标准的支持和对相关API的实现之外,Apusic提供了很多独有的极具竞争力的特性,致力于降低分布式多层企业应用的设计、开发、部署和维护成本,提高生产效率,而同时不影响企业应用遵循相关的标准和规范。
按照多层企业应用的分层方式,从以下三个层次概述Apusic应用服务器3.0的特性。
表示层:多层应用模型中的表示层主要被用于与浏览器、桌面应用、无线设备及其他客户端的交互,Apusic应用服务器支持所有的客户机/服务器的交互机制。
在基于J2EE?编程模型的应用中,表示层主要使用JSP、Servlets 编程模型,对于Apusic应用服务器,还支持诸如Java Applets、Java Application或其他ActiveX组件的客户类型。
对于通过浏览器进行的Http请求,Apusic应用服务器提供了一个高效可靠的Web服务器。通过使用Servlet和JSP实例池、结果缓存、JSP编译调试工具等工具和技术,对于部署于服务器上的JSP和Servlet,Apusic应用服务器服提供了一个高效可靠的运行时环境和开发、部署和维护的高效易用的平台。
2.1.1. 对规范的实现
J2EE?1.3规范中包含了JSP和Servlet规范,通过使用JSP和Servlet规范,定义了J2EE企业应用中的表示层的编程模型。通过使用JSP和Servlet,实现Web内容的动态生成。
JSP与Servlet是紧密相关的两种编程模型,二者都生成动态的Web内容。不同之处在于Servlet使用JAVA语言编写,而JSP的编写还使用了HTML的扩展版本。对于使用HTML编辑器或设计器并熟悉HTML的Web设计者来说,JSP非常便利。而全部使用JAVA的Servlet更适用于JAVA程序员而非Web设计者。
Apusic3.0应用服务器中的Web服务器严格遵循了J2EE?规范中Servlets2.3规范和JSP1.2规范。
2.1.2. 增值特性
除了对J2EE相关JSP和Servlet规范的实现,Apusic应用服务器中的Web容器和相关工具还提供了一些增值特性,通过这些增值特性,使得面向Apusic应用服务器的表示层的开发、部署、运行和维护变得更加方便和高效。
虚拟主机
可以在单个的Apusic应用服务器上配置多个Web站点。通过域名与应用服务器的路径映射实现此功能,只需指定域名即可实现对站点的访问。
多路复用
Apusic 应用服务器采用了多路复用(multiplexing)通讯技术。在一个TCP/IP 连接上建立多个双向的虚拟连接,每个虚拟连接可以进行完全独立的通讯功能。通讯双方可以根据需要打开或关闭虚拟连接,进行通讯,实现了将多个服务统一到一个端口上,降低服务器的管理成本。
使用第三方Web服务器
除了Apusic应用服务器内置的Web服务器外 ,Apusic应用服务器可以与其他现有的Web服务器进行整合,如Apache、Microsoft IIS等,通过使用Apusic应用服务器提供的负载均衡功能,为企业应用提供一个更高可用性和伸缩性的平台。
负载均衡与失效恢复
Apusic应用服务器提供了基于Web层的负载均衡的功能。当使用Apusic作为集群中的负载均衡器时,服务器提供了独有的负载均衡和失效恢复的特性。
对于一个使用Apusic作为负载均衡器的服务器集群,当客户请求到达负载均衡器时,负载均衡器将请求转发到最初服务此请求的内部服务器,如果是初次请求,则负载均衡器随机选择集群中的任意一个内部服务器处理此请求;当内部服务器处理完请求,将产生的应答返回给负载均衡器,会话数据被保存在负载均衡器上;当下一个请求到达而原先处理该请求的内部服务器失效时,负载均衡器重新选择一个正常的内部服务器,这时会话数据连同请求一起被转发给新的内部服务器,会话数据被迁移到新的内部服务器。
此特性以较少的数据迁移量,较高的容错性,提供了基于Web层的负载均衡与失效恢复的增值特性
JSPC工具
为提高表示层JSP的开发调试的效率,Apusic提供了一个简单易用的JSP命令行编译工具JSPC,通过此工具,开发者可以对JSP进行更为高效的开发和调试,通过设置相关调试工具,可以实现对JSP的源码级调试。
最有利的是,发布应用只需要发布编译好的jsp class,即可对jsp源代码提供保护,而不需要提供jsp源程序文件,以免因为其他原因暴露jsp的源文件,并且,在应用运行时,避免对jsp源文件进行编译以节省时间。业务逻辑层:多层应用模型中的业务逻辑层被用于封装应用业务逻辑,包括独立于应用界面的业务组件,通过应用服务器中的组件容器提供运行时环境。 Enterprise JavaBeans?(以下称EJB)是J2EE?应用中的业务逻辑层的组件模型。
Apusic应用服务器3.0版本提供了对EJB2.0规范的完全实现,同时提供了相关的增值特性,以简化对J2EE应用逻辑层的开发、部署、管理和维护。
2.2.1. 对规范的实现
Apusic应用服务器中的EJB容器提供对EJB的生存周期管理、缓存、持久性和事务管理等服务。 目前,J2EE规范中最新的EJB规范为2.0版本。
EJB2.0规范中定义了三种类型的EJB:Session Bean、Entity Bean和Message-driven Bean。 同时定义了相关的一些特性,如CMR、EJB QL等,为提高应用执行的效率,还定义了新的Local接口。Apusic3.0提供了对以上内容的完全实现。
Entity Bean
Entity Bean被用于表示应用中的业务实体,通常与数据库或传统应用中的业务数据实体保持映射关系,可以理解为数据库或传统应用中的业务数据实体在内存中的对象表示方式。
Entity Bean的实例可由任何客户端的请求生成实例,且不因客户连接中断、系统失效等原因而消失,其状态被持久保留在数据库或传统应用中。
EJB2.0规范中对Entity Bean定义了新的容器管理关系模型(CMR)和Entity Bean的查询语言EJB QL。
Session Bean
Session Bean通常被用于实现业务过程逻辑,通过对Entity Bean的操作完成业务过程并封装过程逻辑。 尽管在需要的情况下,Session Bean可以有保持数据到持久存储机制的能力,如数据库,但Session Beans不是持久的。
Message-driven Bean
Message-driven Bean 是EJB2.0规范中新增的一个enterprise bean 类型,通常被用于异步接收从客户端发送的消息,触发相应的业务处理过程。
作为Enterprise Bean,Message-driven Bean具有一些与Session Bean 和Entity Bean 相同的接口方法,但由于Message-Driven Bean 本身不处理客户端调用,也无会话状态,客户只能通过向与Message Driven Bean 关联的队列或主题发送消息从而与Message Driven Bean 进行交互,另外,Message–Driven Bean 异步地处理队列(Queue)或主题(Topic)中的消息,而非方法调用。
2.2.2. 增值特性
除了对EJB2.0规范的实现,Apusic应用服务器中的EJB容器和相关系统服务还提供了一些高端增值特性,通过这些增值特性,使得面向Apusic应用服务器的业务逻辑层的开发、部署、运行和维护变得更加方便、高效和可靠。
实例池
通过图形化的配置工具或简单修改组件配置文件,Apusic应用服务器可以预先装载指定数量的对象实例到实例池中,使对客户请求进行响应的过程更加高效。
CMP Entity Bean自动升迁
对于一个按照EJB1.1规范编写的CMP Entity Bean,应用服务器在运行时将其自动升级到EJB2.0,使按照EJB1.1规范编写的EJB可以使用EJB2.0规范中提供的Lazy Loading和Smart Update技术以提高应用执行的效率,同时降低已有应用在维护上的成本。
热部署
为提高企业应用开发、调试和维护的效率,Apusic应用服务器提供了热部署的功能。在运行时,可以动态地部署和修改应用中的应用程序,无需停止和重新启动服务器即可应用新的改动。
自动迁移及部署
不同的应用服务器厂商提供的基于J2EE?规范实现的应用服务器的不同,使得多数企业应用在不同的服务器之间迁移时,需要改动一些配置,提高了应用移植的成本,Apusic应用服务器提供了自动迁移和部署的能力,对于面向其他非Apusic应用服务器开发的企业应用,可以不改动应用程序,而由应用服务器自动完成移植的工作并部署到应用服务器,大大降低了应用移植的成本。
目前对于面向Weblogic6.0和J2EE?RI开发的企业应用,可以直接使用这项功能,Apusic应用服务器还将在此项功能上添加对当前其他主流应用服务器的支持。
自动生成查询
为提高面向CMP Entity Bean的开发效率和降低开发的难度,Apusic应用服务器可为CMP Entity Bean自动生成缺省的finder query。数据层:Apusic应用服务器模型中的数据层提供企业应用对关系型数据库和传统企业应用数据的高效而可靠的访问。使得企业应用可以通过JDBC实现对关系型数据库安全、可靠而且高效的访问。目前Apusic应用服务器提供了对最新的JDBC3.0版本的支持。任意合法的J2EE?编程模型都可以从Apusic应用服务器数据库连接池中获得对关系型数据库的连接。
按照J2EE?的规范,Entity Bean被设计为与数据库直接交互的最佳模型,但在实际的企业运用开发中,任何一种编程模型都有可能直接与数据库进行交互,针对这种情形,Apusic应用服务器提供了很多功能或特性,使对数据层访问的开发更为简单同时达到更为高效而安全的目标。
JDBC结果集缓存
对于Session Bean、JSP、Servlets为主的J2EE应用中,频繁访问数据库而缺少对应的数据缓存等机制,往往会成为企业应用的瓶颈。因此,Apusic应用服务器提供了JDBC结果集缓存技术,通过将数据库返回的结果集保存在内存中可以大幅提高应用系统的性能,同时,使用结果集缓存对应用开发者是完全透明的,保证了应用的可移植特性。
JDBC语句缓存
对于Session Bean、JSP、Servlets为主的J2EE应用中,频繁访问数据库而缺少对应的数据缓存等机制,往往会成为企业应用的瓶颈。因此,Apusic应用服务器提供了JDBC语句缓存技术,同时使用预编译的查询语句,提高应用程序访问数据库的效率。
连接池
对于复杂的企业应用而言,对数据库连接池的可靠、效率,成本都有着极高的要求,Apusic应用服务器提供了对连接资源的优化,使有限的数据库连接资源得到最大程度的利用,同时,对于应用错误使用连接造成的死锁或阻塞,提供了死锁检测的技术,而以上的特性对于用户而言是完全透明的。
D. 如何自己写一个编译器
编译器的编写涉及一些专业编写工具和一些专业技能代码,自己想编写的话只能用工具套比较简单的代码直接带入,未必能达到自己要的效果
E. 金蝶启动命令
金蝶启动命令./startapsic。金蝶部署SpringBoot+vue项目总结-金蝶启动命令。
1、放置部署包,配置域端口,启动金蝶找到/opt/AAS/domains/mydomain/bin该路径在终端中打开,进行金蝶的启动命令./startapsic。
2、第一次部署需要金蝶密码。部署过程可能会有报错。需要根据控制台的提示解决。如果没有报错会显示:成功启动,服务器就绪。
3、登录金蝶图形化界面,在浏览器手动输入并访问ip:配置的端口/admin,此时会出现如图所示的界面。点击应用管理,参数配置。需要在这个地方配置访问路径。