Как настроить адаптер CICS на встроенном tomcat в Springboot - PullRequest
0 голосов
/ 22 мая 2019

В данный момент я пытаюсь подключить мое приложение springboot к ресурсу cics, но у меня возникают проблемы с настройками

Я использую spring-boot 2.1.3.RELEASE, работающий со встроенным tomcat версии 9.x.x

Я включил разрешение имен на tomcat и попытался настроить адаптер cics как источник данных, используя application.properties, но ничего не сделал.

Мне удалось настроить имя jndi с помощью метода postProcessContext, но мне не удалось создать экземпляр подключения.

Я пытался настроить разъем на web.xml, но без различий.

Класс применения:

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Bean
    public TomcatServletWebServerFactory tomcatFactory() {
        return new TomcatServletWebServerFactory() {
            @Override
            protected TomcatWebServer getTomcatWebServer(org.apache.catalina.startup.Tomcat tomcat) {
                tomcat.enableNaming();
                return super.getTomcatWebServer(tomcat);
            }

            @Override
            protected void postProcessContext(Context context) {
                ContextResource resource = new ContextResource();           
                resource.setName("j2c/CICS");
                resource.setType(ConnectionFactory.class.getName());
                resource.setProperty("url", "[HOST]:[PORT]");
                resource.setProperty("username", "*****");
                resource.setProperty("password", "*****");
                context.getNamingResources().addResource(resource);
            }
        };
    }
}

Фрагмент кода, пытающегося установить соединение:

InitialContext ctx = new InitialContext();
Context envCtx = (Context) ctx.lookup("java:comp/env/");
ConnectionFactory cnf = (javax.resource.cci.ConnectionFactory) envCtx.lookup("j2c/CICS");   

В данный момент не могу связаться с CICS, и я получаю эту ошибку при попытке поиска ресурса:

javax.naming.NamingException: Cannot create resource instance
    at org.apache.naming.factory.FactoryBase.getObjectInstance(FactoryBase.java:96) ~[tomcat-embed-core-9.0.16.jar:9.0.16]
    at javax.naming.spi.NamingManager.getObjectInstance(NamingManager.java:321) ~[na:1.8.0_212]
    at org.apache.naming.NamingContext.lookup(NamingContext.java:840) ~[tomcat-embed-core-9.0.16.jar:9.0.16]
    at org.apache.naming.NamingContext.lookup(NamingContext.java:159) ~[tomcat-embed-core-9.0.16.jar:9.0.16]
    at org.apache.naming.NamingContext.lookup(NamingContext.java:827) ~[tomcat-embed-core-9.0.16.jar:9.0.16]
    at org.apache.naming.NamingContext.lookup(NamingContext.java:173) ~[tomcat-embed-core-9.0.16.jar:9.0.16]
...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...