Java调用COM的中间件Jintegra初探

jintegra.jar jintegra.jar ArcGis COM 立即下载
 最近在学习ArcServer Java ADF的开发,遇到了怎么用Java调用COM组件的问题。ArcServer是基于COM实现的ArcObjects,因为ServerAPI是粗粒度的API,为了避免遭遇性能瓶颈,推荐的解决方案是具体功能用COM组件实现,然后用Java调用COM组件完成特定功能,尽可能地减少DCOM调用。
        了解ArcServer JavaADF或者ArcEngine JavaAPI的人一定知道ESRI解决Java调用COM组件的问题是借助Jintegra的产品来解决这个问题的。Jintegra的产品为ArcObjects生成了一组Java的Proxy classes,我们自己写的COM组件Proxy classes怎么办呢?
       今天为了解决我的笔记本上Power Users不能访问本机的ArcServer对象上它的网站去查找相关资料。看到有试用版下载,不过只能使用30天,30天过后还可以重新下载获取新的试用License。但是还是不爽,Java软件的授权一向以来做得不是很好,所以我就想看看怎么破解了它。下载了一个zip包,我不喜欢exe的安装程序,东西很少就一个Jintegra.jar。打开看看了,很快就找到jintegra.xml这个License文件。可以下载的SDK有两个版本2.5和2.4,但是不知道ArcServer用的是哪个版本,文档中找不到相关的信息。不管它先试试看,我把arcgis下的Jintegra.jar中的license抽出来,导入下载的sdk/lib/jintegra.jar中,用view参数看License时发现竟然是2.3,真是不走运啊。还好,从2.3升级到2.4,只要把jintegra.jar等一堆东西换掉就行了,原来生成的Proxy jars不用更新,2.5就得重新Proxy jars。也就是说2.4生成的Proxy和2.3是兼容的,这也是一个福音啊。因为我在对那组处理License的class反编译后发现这些class被混淆过,非常乱很多一个字母的方法,字符串乱七八糟的几乎看不出任何含义。看来以前的办法行不通。还好我发现一个Version类,Runtime的版本是从这个Class上获取的,这个Class非常简单就几个方法。不能把ESRI的License升级到2.4,那就把Runtime降为2.3的使用。说干就干,还真的没有问题。
      COM的Java Proxy生成非常简单只要执行com2java,然后选择要创建Proxy的类型库,可以是dll、tlb或者olb等都可以,然后可以创建到指定的package中。生成的是一组Java源文件,编译打包成jar即可。好像com2java不需要使用jintegra.jar,也就是不受license限制。因为License文件在jintegra.jar中,所以发布时也是受License限制的,也就是说试用版的SDK发布的东西还是试用版只能用到下载SDK后的第30天。其实我也只需要它帮我生成Proxy就行了,因为Java ADF中有License。
      我按照文档做了一个ATL DLL的例子,native mode下调用dll没有问题,但是remote mode下出了点问题,创建不了对象。后来发现创建COM+程序时,要设置安全性“调用的身份认证级别”必须为“连接”,默认为“数据包”,把这里一改就好了。
       现在的人真是浮躁,好多的问题只要认真研读一下相关文档就可以解决,乃至认真读过这些文档的人成了高手,其实这只是一个GIS开发人员必须做的基本功。
jintegra2.9 破解版 + DLL 基于jintegra的破解进行DLL文件的搭配,将DLL文件存放与%JAVA_HOME%\bin目录下即可。 立即下载

相关推荐

Jintegra and validateion

for grogramming java access com tool

Java调用COM的中间件Jintegra初探(二)

因为最终产品环境是WebLogic 8.1,所以最近两天我在把原来在Tomcat 5.5上开发的东西迁移到WebLogic上,痛苦了两三天终于有点上手了,Servlet  API从2.4降为2.3等等均改好了,最后发布的时候竟然出现Jintegra没有License。Tomcat下根本没有这样的问题。    com.linar.jintegra.Version有一个静态方法getVersion()

complayer的专栏 2824

java调用com组件实例

java调用com组件实例,使用jacb访问com对象

java调用TD的COM组件OTAClient80.dll实现从TD中取数

java调用dll动态链接库主要的方式有三种方式:JNI、JACOB、JNA。 JNI调用很复杂,需要写C/C++头文件实现,因此没有用。 我现在有下面几种思路来实现java调用COM组件: 第一、java直接调用COM组件,无论是JNA和jacob组件需要调用的都是c/c++写的组件,但是调用OTAClient80组件的时候一直报错,JNA是报找不到dll文件,我用c++在VS2010中学

u012390428的博客 3084

C++ 类

本文介绍了C++中类的核心概念和使用方法。

weixin_54859557的博客 1016

黑群晖DSM7.0.1物理机安装教程

使用芯片无忧工具,查看U盘的和。使用,格式化U盘。使用镜像写入工具,把引导写入U盘。修改文件,可以使用工具把文件复制到桌面,通过修改好之后,拖进这个界面中。或者在电脑中,查看U盘,打开U盘中的文件直接修改。具体修改内容如下:PID修改为U盘的PIDVID修改为U盘的VID默认只有mac1=a8412083CB52 mac2=0a11323D47F7 ,增加:mac3=a15823C08000 mac4=a23C04158B52 mac5=82a002524158 mac6=38233052415aS

JingLisen的博客 2万+

在 JAVA 中调用 COM 组件

以前没用过JAVA,一切从头开始: 1、下载 Eclipse。 http://mirrors.ustc.edu.cn/eclipse/eclipse/downloads/drops/R-3.7.2-201202080800/eclipse-SDK-3.7.2-win32.zip。 (如果机器上没有Java运行时环境,需下载 JRE 或 JDK。http://www.oracle.com/t

blueblood7的专栏 1138

淘宝扫码登录避坑指南:如何避免异地登录风控并稳定获取Cookie(附Python代码)

本文深入解析了淘宝扫码登录的风控机制,提供了从环境仿真到代码实现的完整避坑指南。通过精细化伪装请求头、管理会话与IP策略,并附上Python示例代码,帮助开发者稳定获取Cookie,有效避免异地登录风控,实现自动化流程的可靠集成。

l6m7n8的博客 595

java 循环结束 释放对象_AE92 for Java 中手动释放 COM 对象

作者:Flyingis用Java进行ArcEngine或ArcGIS Server开发,在底层实际上是用Java调用AOCOM对象,ESRI用Jintegra库来解决Java对COM的调用问题,如果Java对象不再使用,Java虚拟机会自动将这些对象回收,然后Jintegra将这些对象所指的实际COM对象销毁,默认情况下时间间隔是10秒,对于快速大量调用COM对象的操作来说,如在循环中,COM对象...

weixin_42692935的博客 644

OSCS开源安全周报第13期:Exchange 高危漏洞公开

OSCS 社区共收录安全漏洞31个,公开漏洞值得关注的是 Apache Commons JXPath 存在代码执行漏洞(CVE-2022-41852),Microsoft Exchange 远程代码执行漏洞(ProxyNotShell(CVE-2022-41040),Apache Tomcat 条件竞争漏洞(CVE-2021-43980),FasterXML jackson-databind 小于2.14.0-rc1拒绝服务漏洞(CVE-2022-42003)。

OSCS开源安全社区 4198

为什么 ChatGPT 生成的下载地址会长成 sky-metal-cards-jerry.quirkypony34.chatgpt.site 这种奇怪的样子

我今天看到的这条地址,确实很容易让人产生一种感觉,ChatGPT 明明只是生成了几张 PNG 图片和一个压缩包,为什么最终拿到的却不是类似这种看起来很正规的下载链接,而是一长串带有、UUID、apidecks的地址。更容易让人疑惑的是,其中还出现了一个平时很少见到的域名。这并不是浏览器随机生成的临时 URL,也不是某个来历不明的第三方文件服务器。根据 OpenAI 在 2026 年公布的 ChatGPT Sites 文档和相关服务条款,

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 66

java 手动释放对象_AE92 for Java 中手动释放 COM 对象

作者:Flyingis用Java进行ArcEngine或ArcGIS Server开发,在底层实际上是用Java调用AO COM对象,ESRI用Jintegra库来解决Java对COM的调用问题,如果Java对象不再使用,Java虚拟机会自动将这些对象回收,然后 Jintegra将这些对象所指的实际COM对象销毁,默认情况下时间间隔是10秒,对于快速大量调用COM对象的操作来说,如在循环中,COM...

weixin_30895059的博客 559

晶体管-二极管三极管MOS管选型参数总结

二极管三极管和MOS管,是电路中常用的控制电流电压的基本电子元器件。电路世界中晶体管的选型,需要考虑的参数多种多样,这些参数的选择会直接影响到电路的性能、稳定性、成本等多个方面。本文对二极管三极管和MOS管的选型参数进行详细介绍并总结。

fydar的博客 890

java调用COM组件的几种工具

java调用COM组件的几种工具

pdw2009的专栏 1万+

DFT笔记 DC/AC mode与Func

DFT scan可以分为DC和AC两种,区别如下图。

m0_61544122的博客 5732

分布式系统中的“无状态”和“有状态”详解

有状态服务,即服务端需要记录每次会话的客户端信息,从而识别客户端身份,根据用户身份进行请求的处理,典型的设计如 tomcat 中的 session。例如登录:用户登录后,我们把登录者的信息保存在服务端 session 中,并且给用户一个 cookie 值,记录对应的 session。然后下次请求,用户携带 cookie 值来,我们就能识别到对应 session,从而找到用户的信息。

AI天才研究院 2万+

AE92 for Java 中手动释放 COM 对象

    作者:Flyingis     用Java进行ArcEngine或ArcGIS Server开发,在底层实际上是用Java调用AO COM对象,ESRI用Jintegra库来解决Java对COM的调用问题,如果Java对象不再使用,Java虚拟机会自动将这些对象回收,然后 Jintegra将这些对象所指的实际COM对象销毁,默认情况下时间间隔是10秒,对于快速大量调用COM对象的操作...

weixin_33946020的博客 284

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Jintegra使用注意事项

setdllhost.exe 注册命令为setdllhost 注册类 描述 使用时注意首先用cmd cd 进入类库所在目录,setdllhost.exe使用全路径。 命令:setdllhost F:\aaa\aa.dll "aaa Test" 注意二:当com2java.exe工具转换的类在运行时调用了其他类库时,需要把类库拷贝到system32目录下。 转载于:https://w...

weixin_30483495的博客 186

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Java与其他语言的互操作性

目前,我们项目中需要用到把Java程序嵌入到.Net程序中的技术,我们最后所采用的技术是Codemesh公司的JuggerNET。这种类似的技术很多,比较知名的主要有intrinsyc公司的JIntegra以及IBM的Java COM bridge。项目进行到现在,发现了很多问题,主要有如下几大类问题:1、弹出窗口问题对于这类问题,很多都是由程序逻辑问题导致的。一般只要修改程序逻辑就能

dawn023的专栏 989

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

基于jCOM搭建Java-微软信息桥梁 jcom原理介绍

 一、jCOM简介    据Gartner的研究分析,在名列全球前1000名的企业中,大约90%都混合应用了Java和Windows技术。然而,Java技术和微软技术分别提供了丰富但却迥然不同的解决方案,或至少说这两种方案之间的差异是巨大的。   为了解决这一矛盾,Sun率先提出了JNI解决方案。JNI,即Java本机接口,是编写Java本机方法和把Java虚拟机嵌入到本机应用程序中的标准

Steve_wang_victor的专栏 1625

java 邮件 开源,开源java库,用于阅读Outlook电子邮件,日历等

I am looking for an open source java lib to read emails, calendar, contacts from Microsoft outlook. Do you know any of these lib or workaround?Right now the requirement is to only read the data and pr...

weixin_33374400的博客 220

arcgis java环境搭建,ArcGIS Java平台入手——开发环境配置等

ArcGIS Java平台入手——开发环境配置等安装配置好完成ArcGIS desktop以及ArcGIS server Java edition以后,就可以开始着手开发环境的搭建和配置了。学习一项技术,一边阅读代码一边翻阅文档不能说不是一种好的方式。配置好ArcGIS的eclipse开发环境以后,我们便可以导入ArcGIS eclipse插件提供的大量的示例程序进行学习,同时查看相关的帮助手册。...

weixin_28947253的博客 704

Java ADF Template程序不能连接ArcGIS Server问题

错误描述 AutomationException: 0x80070005 - General access denied error AutomationException: 0x5 - access is denied, invalid domain, username, password Run-time error '70': Permission denied ...

weixin_33915554的博客 91
上一篇: 下周开始休假等待办理离职手续了
下一篇: 系统分析师考试成绩出来了,高兴又担忧
complayer
博客等级 码龄25年 16粉丝 57原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值