亲爱的Stackoverflow用户,我最近在使用Spring框架的axis2 Web服务的一个特定问题时遇到了很多痛苦.我已经阅读了很多不同的指南并阅读了不同的论坛,但发现人们有同样的问题,但没有解决方案.基本上最后用双手握住显示器并大喊"你发现了什么是BudapestHacker938?".无论如何,我的axis2 Web服务类需要Spring bean,因此它们在Web服务类中自动装配.在我有servletContext的jetty服务器里,一切都运行良好.只需在web.xml中定义所需的侦听器即可.这样的幸福.但不幸的是,在某些方面所有好事都落到了尽头,对我来说,魔鬼是大型机内部的CICS环境.Jetty/Tomcat中没有servletcontext,幸运的是,它仍然支持axis2.因此,根据不同的用户指南,我决定将我的网络服务存档到.aar并将其添加到services文件夹下.Axis2文件夹结构如下:
当我构建这个.aar存档时,我也在生成我自己的wsdl,而不是使用axis2内置的wsdl生成器,根据services.xml生成给定类的服务(当我运行axis2server时,不使用因为doesn'就我所知,我喜欢JAX-WS注释.要初始化Spring框架,我需要编写初始化Spring bean的SpringInit类.不幸的是,由于某种原因它也会根据其注释初始化我的web服务类,然后占用主端口(怀疑SpringInit通过自己的Web服务类初始化,因为它也被定义为Spring bean而SpringInit扩展了Axis2类ServiceLifeCycle)我得到JVM BIND异常,它说明地址已被使用.我希望根据存储在WSDL内部的wsdl构建服务,而不是生成新服务,因为我有各种环境:1)本地机器 - Jetty 2)大型机.无论如何,我深入了解了我的services.xml:
<service name="Absence" class="org.services.SpringInit">
<description>
random description
</description>
<parameter name="ServiceTCCL">composite</parameter>
<parameter name="useOriginalwsdl" locked="false">true</parameter>
<parameter name="ServiceObjectSupplier">org.apache.axis2.extensions.spring.receivers.SpringAppContextAwareObjectSupplier</parameter>
<parameter name="ServiceClass">org.services.Absence</parameter>
<parameter name="SpringBeanName">absence</parameter>
<parameter name="SpringContextLocation">META-INF/applicationContextAar.xml</parameter>
</service>
Run Code Online (Sandbox Code Playgroud)
Spring applicationContextAar.xml,为亲爱的Stack社区进行了一点点重构:
<beans>
<bean id="applicationContext" class="org.apache.axis2.extensions.spring.receivers.ApplicationContextHolder" />
<bean class="org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor"/>
<bean id="ds" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="org.h2.Driver" />
<property name="url" value="jdbc:h2:tcp://localhost/~/devDb" />
<property name="username" value="sa" />
<property name="password" value="" />
</bean>
<bean id="absence" class="org.services.Absence"></bean>
<bean id="jtemplate" class="org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate">
<constructor-arg ref="ds"></constructor-arg>
</bean>
<bean id="datasetFactory" class="org.vsam.DataSetFactory"></bean>
<bean id="dataManagerFactory" class="org.datamanager.DataManagerFactory"></bean>
<bean …Run Code Online (Sandbox Code Playgroud) 我正在开发一个处理程序调用的Wrapper/Bridge COBOL程序,并执行日志记录,安全检查等交叉操作.主要动机是检查消费者程序的安全访问权限是否有权调用生产者程序.
让桥COBOL程序为B1,生产者程序P1和消费者(客户)C1.
当C1想要拨打P1时,它必须拨打B1电话.然后,B1检查可访问性.如果C1有权访问,则B1用C1的数据调用P1.
C1 -> B1 -> P1
Run Code Online (Sandbox Code Playgroud)
在这里,B1和P1的连接部分是相同的.程序正在使用EXEC CICS LINK相互调用.
COMMAREA,
COMMAREA1 (DataSet Name)
01 COMMAREA-STRUCT,
03 a-field
03 another-field
...
Run Code Online (Sandbox Code Playgroud)
客户端;
IDENTIFICATION DIVISION.
PROGRAM-ID. Client.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
COPY COMMAREA1
PROCEDURE DIVISION
/* fill CommareaStruct with some values. */
....
/* call B1 Bridge */
EXEC CICS LINK PROGRAM (B1Bridge) NOHANDLE
COMMAREA (COMMAREA-STRUCT)
LENGTH (LENGTH OF COMMAREA-STRUCT)
END-EXEC
....
Run Code Online (Sandbox Code Playgroud)
大桥,
IDENTIFICATION DIVISION.
PROGRAM-ID. B1Bridge.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
LINKAGE SECTION.
COPY COMMAREA1 …Run Code Online (Sandbox Code Playgroud) 我有一个简短的程序COBOL CICS,它是一个基本的CRUD。在此程序中,我有一个选项,当我按F12键时要退出,请关闭我的交易。
我想按F12键,交易关闭。
我可以在我的COBOL程序中编写任何命令来执行此操作吗?
谢谢
哪个是经过验证的连接大型机和java的解决方案?哪个在WebSphere MQ/IBM CICS Transaction Gateway中最好?
哪个是连接到java和大型机COBOL的最佳解决方案?
是否可以从JCL批处理中调用CICS程序?
如果有,怎么样?如果不是为什么不呢?
我记得当做一个ftp将文件从大型机复制到Windows时,文件名总会有一些数字后缀,每天都会改变.即abc.4328然后它将成为abc.23595..etc大型机世界中更改后缀的概念/术语是什么?
有没有什么方法可以找到导致异常(例如SO4C)从offset +00007D0A at address 1515CD0A线轴中给出的偏移量(如SO4C)的确切行号,并显示错误消息.
潜在客户要求我们建议在CICS主机上使用主机服务的集成策略.
由于我们通常将此选择委托给与客户的CICS专家的专门会议,因此我们在这里有点失衡,需要建议.
根据经验,我通常建议(CICS与否):
但是,我并没有特定的CICS知识来论证.我特别感兴趣的经验:
有没有人有关于Boomi连接到CICS主机的最佳实践的建议或链接?
我的其他选择是:
这里最相关的两个问题是:
但两者都没有戴尔Boomi的链接
科博程序:
PROGRAM-ID. SCHPROG.
ENVIRONMENT DIVISION.
INPUT-OUTPUT SECTION.
FILE-CONTROL.
SELECT MYFILE ASSIGN TO INDD
ORGANIZATION IS SEQUENTIAL
ACCESS MODE IS SEQUENTIAL.
DATA DIVISION.
FILE SECTION.
FD MYFILE.
01 FILERECORDS.
05 NAME PIC A(10).
05 CLASS-IN PIC 9(1).
05 ROLL PIC 9(5).
WORKING-STORAGE SECTION.
COPY SCHMAPA.
COPY SCHMAPB.
COPY SCHMAPC.
01 END-OF-FILE PIC A(3) VALUE 'NO'.
PROCEDURE DIVISION.
000-MAIN-PARA.
PERFORM 100-SEND-MAPA.
PERFORM 100-RECEIVE-MAPA.
IF CHOICEI = '1'
PERFORM 200-SEND-MAPB
PERFORM 200-RECEIVE-MAPB
PERFORM 200-SEND-MAPB
PERFORM 100-SEND-MAPA
END-IF.
IF CHOICEI = '2'
PERFORM 300-SEND-MAPC …Run Code Online (Sandbox Code Playgroud) cics ×10
cobol ×9
mainframe ×8
db2 ×3
zos ×3
architecture ×1
axis2 ×1
eai ×1
gnucobol ×1
ibm-mq ×1
integration ×1
jcl ×1
rexx ×1
spring ×1
transactions ×1