Вопросы с тегами [spring-boot]

0

голосов
0

ответ
9

Просмотры

Swagger-UI emplyeed in nginx by bunled jar, it shows blank page

Форс-интерфейс можно посетить на окружающую среду «Dev», но он не в состоянии, когда я развернуть его в облаке. Я попытался AddResoucesHandler, но он не работает. Сообщение об ошибке: GET https://user.throw.atatakai.cn/webjars/springfox-swagger-ui/springfox.css?v=2.9.2 нетто :: ERR_ABORTED 404 (Not Found) развязность-ui.html: 8 GET https://user.throw.atatakai.cn/webjars/springfox-swagger-ui/swagger-ui.css?v=2.9.2 нетто :: ERR_ABORTED 404 (Not Found) развязность-ui.html: 70 GET по протоколу HTTPS: //user.throw.atatakai.cn/webjars/springfox-swagger-ui/swagger-ui-bundle.js?v=2.9.2 нетто :: ERR_ABORTED 404 (Not Found) развязность-ui.html: 71 GET по протоколу HTTPS: //user.throw.atatakai.cn/webjars/springfox-swagger-ui/swagger-ui-standalone-preset.js?v=2.9.2 нетто :: ERR_ABORTED 404 (Not Found) развязность-ui.html: 72 GET https://user.throw.atatakai.cn/webjars/springfox-swagger-ui/springfox.js?v=2.9.
Emwing
1

голосов
1

ответ
3.9k

Просмотры

Реализация Google Calendar API с Угловыми 5

Я пытаюсь подключиться к API Google Calendar, используя угловую 5, так что я могу показать предстоящих событий на веб-приложения, я в здании. Я новичок в Угловом и я ищу способ интегрировать API в моем приложении. Я искал много, но я не нашел способ сделать это.
Eve
1

голосов
2

ответ
294

Просмотры

В том числе пружины загрузки конечной переменный пути в качестве метрической размерности

У меня есть апи конечной точка: / пользователь / {арендатор} / создать Я использую пружинные загрузки 2 с микрометром для метрик. По умолчанию @Timer аннотации для весенней загрузки 2 конечных точки включают в себя следующие тег: исключение, метод, Урьте, статус я хочу добавить переданное значение для параметра апи «жильца» в качестве дополнительного тега для конечной точки Как это сделать с помощью пружинного загрузки 2 и микрометр
Rohan Shetty
1

голосов
1

ответ
78

Просмотры

Какой graphql-весна-загрузка-стартер я должен выбрать?

Я думал о добавлении GraphQL функциональных возможностей моего приложения Spring загрузки. Я нашел, что есть два артефактов для этого. Одним из них является com.graphql-ява-Кикстарт: graphql-весна-загрузки-стартер, а другой com.graphql-Java: graphql-весна-загрузки-стартер. Какой я должен выбрать?
Jin Kwon
1

голосов
1

ответ
71

Просмотры

Thymeleaf: только переменные выражения возвращающие числа или булевы разрешены в этом контексте

У меня есть RESTful приложение Web Service SpringBoot 2.1.4.RELEASE., Используя Spring Initializer, встроенный Tomcat, Thymeleaf двигатель шаблона и пакет как исполняемый файл JAR. У меня есть этот кусок кода в одном из своих шаблонов, ... Но я получил эту ошибку при визуализации шаблона: org.thymeleaf.exceptions.TemplateProcessingException: только переменные выражения возвращающих чисел или булевыми позволены в этом контексте, любые другие типы данных, не доверяют в контексте этого выражения, в том числе строк или любого другого объекта, который может быть вынесенному в тексте буквальным. Типичный пример является HTML атрибутов для обработчиков событий (например, «OnLoad»), в котором текстовые данные из переменных должны лучше быть выведено «данных- *» атрибуты, а затем прочитать из обработчика события.
carles xuriguera
1

голосов
3

ответ
4.9k

Просмотры

эврика UnknownHostException в открытии службы

Я два microservices, Эврика-клиент-1, работающие на локальном хосте: 8081 Эврика-клиент-2, работающие на локальном хосте: 8082 Оба эти DiscoveryClients зарегистрированных с «эврика-сервером» работает на локальном хосте: 8761. В фрагменте кода ниже, я пытаюсь позвонить эврика-клиент-2 от эврика-клиент-1. Вместо вызова HTTP: // локальный: 8082, я хочу назвать HTTP: // Эврика-клиент-2, но это бросает java.net.UnknownHostException во время открытия службы Eureka. После поиска, я обнаружил, что мне нужно использовать «Brixton», чтобы сделать это. Есть ли способ сделать это с Camden.SR3? Просьба предложить. @Component общественного класса HystrixDemoService {@Bean @LoadBalanced общественного RestTemplate restTemplate () {возвращение нового RestTemplate (); } @HystrixCommand (fallbackMethod = "getFallbackCustomerName" ) Публичная Строка getCustomerName () {RestTemplate restTemplate = новый RestTemplate (); Uri Uri = URI.create ( "HTTP: // Эврика-клиент-2"); // здесь терпит неудачу вернуть restTemplate.getForObject (Uri, String.class); } Общественной Строки getFallbackCustomerName () {System.out.println ( "приход внутри запасного метода"); вернуться «Клиент» тележек дополнительным; }} Pom.xml 4.0.0 com.example демо-pranay-Eureka-client1 0.0.1-СНАПШОТ банку демо-pranay-Eureka-client1 Демонстрационный проект Spring ботинке org.springframework.boot пружинно-загрузочный стартер-родителя 1.4. 2.RELEASE UTF-8, UTF-8 1.8 org.springframework.
prranay
1

голосов
1

ответ
1.2k

Просмотры

Весна загрузка основной весна аутентификации загрузка сеанс возможно

У меня есть серверное приложение фонового пружинных загрузок, который реализует базовую аутентификацию по протоколу HTTPS. Не будем иметь традиционный веб-интерфейс переднего конца, а мой андроид и клиенты IOS будут использовать REST API вызовов. Бэкенд в настоящее время проверки информации имя пользователя и пароль, полученные и реагирует с правильными сообщениями о состоянии (401, 200). Могу ли я использовать пружинный загрузочный сеанс, чтобы иметь логин пользователя в начале сессии, а затем использовать значение сеанса для каждого последующего вызова REST API для этой сессии? Реализовать этот вопрос похож на [Спринг загрузки отдых безопасность с Android и IOS, но этот вопрос, похоже, не охватывает кэширования и с использованием значения сеанса принятым для все дополнительного Rest API призывает к сессии. Должен ли я передать значение сеанса в качестве параметра в Rest ставить и команды API размещать? Цель должна иметь приложение проверить пользователь зарегистрирован и проверить свои учетные данные, прежде чем принимать дополнительные команды остальное пут и пост. Я прочитал документацию spring.io, но не нашел эту тему охвачены. Несколько новичок пружинных ботинок.
geezer57
1

голосов
1

ответ
275

Просмотры

Как настроить автономный контроллер только один раз перед всеми тестовыми в Spring ботинке?

Я пишу тесты для контроллера. Я насмешливо слой службы и с использованием автономной установки для контроллера отдыха. ProductSupplierControllerUnitTest.java общественного класса ProductSupplierControllerUnitTest {@Mock личное ProductSupplierService productSupplierService; @InjectMocks частный ProductSupplierRestController productSupplierRestController; частный MockMvc mockMvc; @Before общественной пустоты нАлАдкА () {MockitoAnnotations.initMocks (это); mockMvc = MockMvcBuilders.standaloneSetup (productSupplierRestController) .setControllerAdvice (новый ServiceExceptionHandler ()) построить (). } @Test общественный недействительный productNotFound () бросает исключение {Длинное incorrectProductId = 2L; Mockito.when (productSupplierService.getProductSuppliers (incorrectProductId, tenantId)). thenThrow (новый EntityNotFoundException (Product.class, String.valueOf (incorrectProductId))); RequestBuilder requestBuilder = MockMvcRequestBuilders.get (prepareRequestUrl (incorrectProductId)) .requestAttr (TENANT_ID, tenantId) .contentType (MediaType.APPLICATION_JSON_UTF8); mockMvc.perform (requestBuilder) .andExpect (статус (). isNotFound ()) .andExpect (содержание (). CONTENTTYPE (MediaType.APPLICATION_JSON_UTF8)). andExpect (jsonPath ( "$. сообщение", является (string.Format ( "Продукт не был найден для параметра (ов)% S», incorrectProductId)))); . Mockito.verify (productSupplierService, раз (1)) getProductSuppliers (incorrectProductId, tenantId); Mockito.verifyNoMoreInteractions (productSupplierService);
Harshit
1

голосов
1

ответ
40

Просмотры

Starting Sub SpringBootApplication in Spring project for micro service

Я пытаюсь запустить другой пружинный загрузочный сервис от существующего приложения, в порядке и использовать один и тот же слой базы данных. Два приложение должно быть отводящими услугами с почтительными портами. Моя структура проекта заключается в следующем: - com.name (Project A) | - Применение | - com.name.controller - com.name.controller2 (New) (Project B) | - Application2 (New) | - com.name.controller2.controller (Новый RestController) | - com.name.storage (Проект С) | | - com.name.service Для применения: (Он начинает со всеми контроллерами конечных точек) @SpringBootConfiguration класса приложений общественности {SpringApplication.run (Application.class, арг); } Для Application2 Я tryied, что не повезло: // @ SpringBootApplication (// scanBasePackages = { "com.name"}) @SpringBootConfiguration @ComponentScan (basePackages = { "com.name" }) общественный класс Application2 {SpringApplication.run (Application2.class, арг); } Я пробовал много вариантов, но не мог получить это право. Если я использую «com.name.storage», как basePackages приложения начинает без настройки на всех (не признавая покой оконечных точек из его контроллера), но прислушиваясь к новому порту. Можете ли вы мне помочь с правильной конфигурации?
Jonny
1

голосов
1

ответ
1.4k

Просмотры

Тестирование Spring загрузки кэша (Кофеин)

У меня есть кэш конфигурации, как показано ниже; @Configuration класс CacheConfiguration общественного {@Bean общественного CacheManager cacheManager (Ticker тикер) {CaffeineCache bookCache = buildCache ( "книга", тикер, 30); SimpleCacheManager cacheManager = новый SimpleCacheManager (); cacheManager.setCaches (Collections.singletonList (bookCache)); вернуться cacheManager; } Частная CaffeineCache buildCache (имя String, Ticker тикер, внутр minutesToExpire) {возвратить новый CaffeineCache (имя, Caffeine.newBuilder () .expireAfterWrite (minutesToExpire, TimeUnit.MINUTES) .maximumSize (100) .ticker (тикер) .build ()) ; } @Bean общественного Тикер тикер () {вернуть Ticker.systemTicker (); }} И обслуживание я хочу тест: @Service общественного класса TestServiceImpl реализует TestService {личной окончательное BookRepository bookRepository; // интерфейс @Autowired общественности TestServiceImpl (конечная BookRepository bookRepository) {this.bookRepository = bookRepository; } @Override общественного Книга getByIsbn (String ISBN) {вернуться bookRepository.getByIsbn (ISBN); }} Требуемый метод в хранилище помечается @Cacheable ( «книга»). @Override @Cacheable ( "книга") публичная книга getByIsbn (String ISBN) {LOGGER.info ( "Fetching книга ..."); simulateSlowService (); // Ожидание в течение 5 секунд вернуться новую книгу (ISBN, «Некоторые книги»); } Мне нужно написать тест, показывающий работает кэширование. Таким образом, я создал еще один тикер боб в тесте, чтобы переопределить один существующий в CacheConfiguration. Код; @RunWith (SpringRunner. класс) @SpringBootTest общественного класса TestServiceTests {частный статический финал Строка BOOK_ISBN = "ISBN-8442"; @SpyBean личное BookRepository bookRepository; @Autowired частный TestService TestService; @Configuration @Import (SpringBootCacheApplication.class) публичный статический класс TestConfiguration {//testCompile('com.google.guava:guava-testlib:23.6-jre ') статический FakeTicker fakeTicker = новый FakeTicker (); @Bean общественности Ticker тикер () {вернуться fakeTicker :: чтения; }} @Before общественная недействительная нАлАдкА () {Книга Книга = fakeBook (); doReturn (книга) .when (bookRepository) .getByIsbn (BOOK_ISBN); } Частная книга fakeBook () {вернуть новую книгу (BOOK_ISBN, "Мока книги"); } @Test общественного недействительными shouldUseCache () {// Начало При 0 минут testService.getByIsbn (BOOK_ISBN); проверить (bookRepository, раз (1)) getByIsbn (BOOK_ISBN). // Через 5 минут от начала, он должен использовать кэшированный объект TestConfiguration.fakeTicker.advance (5, TimeUnit.MINUTES); testService.getByIsbn (BOOK_ISBN); проверить (bookRepository, раз (1)) getByIsbn (BOOK_ISBN). // НЕ ЗДЕСЬ // Через 35 минут от начала, он должен вызвать метод снова TestConfiguration.fakeTicker.advance (30, TimeUnit.MINUTES); testService.getByIsbn (BOOK_ISBN); проверить (bookRepository, раз (2)) getByIsbn (BOOK_ISBN). }} Но он не на линии, помеченной // FAILS ЗДЕСЬ с сообщением; org.mockito.exceptions.verification.TooManyActualInvocations: simpleBookRepository. getByIsbn ( "ISBN-8442"); Требуется 1 раз: -> в sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) Но было в 2 раза. Нежелательный вызов: -> в sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method) Почему это не удается? Не должна ли она использовать кэш? Или мой тест не так? Любая помощь или указатели с благодарностью! :)
Raj
0

голосов
0

ответ
10

Просмотры

Как изменить имя пользователя / пароль, и во время выполнения базы данных с помощью HikariCP

У меня есть мульти приложение арендатора, который пытается подключиться к базе данных на арендатор и каждую базу данных будет иметь свой собственное имя пользователя / пароль. Я хочу, чтобы достичь этого, используя один источник данных путем переключения между источниками данных и пользователями. Я попытался установить имя пользователя и пароль во время выполнения на получение соединения. Подключение CNX = datasource.getConnection (имя пользователя, пароль); cnx.setCatalog (DATABASENAME); К сожалению, GetConnection (имя пользователя, пароль) не реализован в HikariCP 3.1.0 Есть ли способ для достижения этой цели. Я знаю, что я могу создать источник данных для каждого запроса и закройте его после выполнения запроса (не хорошее решение). Кроме того, у меня есть более чем 5000 жильцов, поэтому кэширование источника данных не вариант в моем случае. Любая помощь будет высоко ценится! Заранее спасибо.
Srik91
1

голосов
1

ответ
233

Просмотры

GAE (Spring Загрузочного App) CO чек не возвращает Access-Control-Allow-Origin заголовка

Я провел целый день, пытаясь развернуть Spring загрузки приложения (REST API) для Google App Engine, и я застрял, пытаясь пройти конфигурации CORS. Приложение весной работает локально, так что я знаю, что конфигурация Spring CORS является правильной. Тем не менее, я получаю следующее сообщение об ошибке при развертывании на GAE. Не удалось загрузить https://avian-infusion-156317.appspot.com/api/login: Ответ на предполетной запроса не проходит проверку контроля доступа: заголовок Нет «Access-Control-Allow-Origin» присутствует на запрошенный ресурс , Происхождение «HTTP: // локальный: 8100», следовательно, не имеет права доступа. Ниже обмениваемые заголовки из Инструментов разработчика Chrome: Общий запрос URL: https: //avian-infusion-156317.appspot.com/api/login Метода запроса: OPTIONS Кода состояния: 200 Удаленного адрес: 172.217.26.52: 443 Referrer политика : нет-реферер-когда-понижение рейтинга Заголовки запросов: орган: avian-infusion-156317.appspot.com: Метод: ДОП: путь: / API / Логин: схема: HTTPS принимаем: * / * Accept-Encoding: GZIP, выкачать, уш Accept-Language: KO-KR, Ко; д = 0,9, EN-US; д = 0,8, ан; Q = 0,7 контроля доступа-Request-заголовки: Content-Type контроля доступа-запроса метод: POST происхождение: HTTP : // локальный: 8100 агент пользователя: Mozilla / 5.0 (Macintosh; Intel Mac OS X 10_13_2) AppleWebKit / 537,36 (KHTML, как Gecko) Chrome / 63.0.3239.84 Safari / 537.36 Заголовки отклика позволяют: GET, HEAD, POST, TRACE , ВАРИАНТЫ альт-SVC: HQ = ": 443"; ма = 2592000; Quic = 51303431; Quic = 51303339; Quic = 51303338; Quic = 51303337; Quic = 51303335, Quic = ": 443"; ма = 2592000; v = "41,39,38,37,35" Content-Length: 0 тип содержимого: текст / дата HTML: Ср, 3 января 2018 16:22:06 GMT Сервер: Google Frontend статус: 200 х-облако след -context: 7369ca471aca5fe01fb46903e9af3b9f; о = 1 Как вы можете видеть, заголовок 'Access-Control-Allow-Origin' отсутствует в ответ. Я поставил конфигурацию Корс на GAE следующим образом: GSUtil CORS получить GameSpot: //avian-infusion-156317.appspot.com [{ "maxAgeSeconds": 3600, "метод": [ "*"], "происхождение": [ "*"], "responseHeader": [ "Content-Type", "разрешение"]}] Прежде чем прибегать к * для начала, я попробовал конкретный URL, а именно 'HTTP: // локальный: 8100' не дало никаких результатов. Что мне не хватает? Пожалуйста помоги! [ "*"], "Происхождение": [ "*"], "responseHeader": [ "Content-Type", "разрешение"]}] Прежде чем прибегать к * для начала, я попробовал конкретный URL, а именно «HTTP : // локальный: 8100' безрезультатно. Что мне не хватает? Пожалуйста помоги! [ "*"], "Происхождение": [ "*"], "responseHeader": [ "Content-Type", "разрешение"]}] Прежде чем прибегать к * для начала, я попробовал конкретный URL, а именно «HTTP : // локальный: 8100' безрезультатно. Что мне не хватает? Пожалуйста помоги!
Calvin Son
1

голосов
2

ответ
1.2k

Просмотры

Весна / кот не удается загрузить класс драйвера: com.mysql.jdbc.driver

В последнее время я пытался узнать загрузку пружины. У меня есть следующие соответствующие файлы: класс @Configuration: Я использую это, чтобы создать EntityManagerFactory класса @Entity: Я использую это для сопоставления экземпляра MySQL таблицы в @Repository crudrepository интерфейса: это встроено в весной в @Controller класса : используется для проверки автоматической проводки (когда я могу вводить, я буду двигаться в этом на уровне услуг) класс @SpringBootApplication: это работает мое приложение Н. application.properties подать pom.xml: используется для мавена и включает в себя MySQL банка класса сущностей отображенного в таблицу тузда и UserRepository класса (аннотированный с @Repository). Я пытаюсь привнести crudrepository класс через @Autowire аннотацию, но весной испытывает трудности с созданием источника данных для него, потому что он не может найти драйвер MySQL. Что меня смущает то, что у меня есть зависимость MySQL в мавена и я развертывания это на сервере GlassFish 4, но Spring пытается использовать Apache Tomcat для подключения к базе данных. Ниже мой трассировки стека, фрагменты кода, и MySQL-разъем: Соответствующий Трассировка стека (внутреннее исключение) Вызывается: org.springframework.beans.BeanInstantiationException: Не удалось создать экземпляр [org.apache.tomcat.jdbc.pool.DataSource]: Фабрика метод «Datasource» бросил исключение; вложенное исключение java.lang.IllegalStateException: Невозможно загрузить класс драйвера: com.mysql.jdbc.driver на org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate (SimpleInstantiationStrategy.java:189) ~ [весна-бобы-4.3. 13.RELEASE.jar: 4.3.13.RELEASE] на org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod (ConstructorResolver.java: 588) ~ [весна-бобы-4.3.13.RELEASE.jar: 4.3.13.RELEASE] ... 62 общие рамки опущена Вызванный: java.lang.IllegalStateException: Не удается загрузить класс драйвера: com.mysql.jdbc.driver обратите внимание, как это пытается использовать org.apache.tomcat создать источник данных, даже если я использую GlassFish сервер. Имеет ли это значение? Исходный код: первое отношение исключение возникает, когда пружина пытается впрыснуть источник данных компонента, который является параметром этого метода и не может создать его @Configuration @EnableAutoConfiguration общественного класс AppConfigUtil {@Autowired @Bean общественного EntityManagerFactory EntityManagerFactory (DataSource DataSource) {LocalContainerEntityManagerFactoryBean бобы = новый LocalContainerEntityManagerFactoryBean (); bean.setPackagesToScan ( "com.connor"); bean.setDataSource (DataSource); вернуть bean.getObject ();
Connor Butch
1

голосов
1

ответ
1.3k

Просмотры

весна-облако конфигурации сервера - org.springframework.cloud.config.server.environment.NoSuchRepositoryException | Не удается клонировать или хранилище фотографии :?

Я работаю с Spring Клом, и с помощью Config-сервер экстернализовать свойство микро-услуги. Ниже файл манифеста сервер конфиг-сервера: порт: 8888 весна: облако: конфигурации: Сервер: мерзавец: URI: https://github.com/Girdhars/config-server.git приложения: имя: Управление конфиг-сервера: безопасность : включено: ложь, но при обращении к Rest Endpoint Http: // локальный: 8888 / приложение / по умолчанию я получаю ниже исключения. { "Отметка времени": 1515082055134, "статус": 404, "ошибка": "Not Found", "исключение": "org.springframework.cloud.config.server.environment.NoSuchRepositoryException", "сообщение": «Не удается клонировать или выписка хранилище: https://github.com/Girdhars/config-server.git»,
1

голосов
0

ответ
711

Просмотры

Как добавить роли в безопасности Spring загрузки из Zuul фильтра

Я занимаюсь разработкой приложений Spring Загрузочный REST, который имеет пользовательский маркер проверки подлинности системы. Маркер имеет роли для пользователя, как претензия. А Zuul прокси перенаправляет трафик на несколько microservices весны загрузки и я хотел бы добавить фильтр к Zuul так, что он извлекает роли из маркеров (хранятся в виде претензий) и устанавливает их в среде Spring безопасности (который я не знать внутренности), так что я могу настроить доступ в микро услуг с использованием стандартного подхода Spring безопасности, используя, например, WebSecurityConfigurerAdapter:. защищено недействительная Configure (AuthenticationManagerBuilder авторизация) бросает исключение {auth.inMemoryAuthentication () withUser ( «user1») .password ( "secret1") .roles ( "USER"). и (). withUser ( "admin1"). пароль ( "secret1" ) .roles ( "пользователь", "ADMIN"); } Таким образом, перефразировать ... как я могу включить эти роли из моих пользовательских маркеров, используя фильтр предварительной очистки в Zuul таким образом, они являются частью объекта AuthenticationManagerBuilder?
icordoba
1

голосов
1

ответ
593

Просмотры

Загрузить синтаксис Cron из базы данных в приложении загрузки яровой

Это мой Запланированные класс задачи @Component общественного класс ScheduledTask {частные статические окончательный Logger ЛЕСОЗАГОТОВИТЕЛИ = LoggerFactory.getLogger (ScheduledTask.class); частный статический окончательный SimpleDateFormat DateFormat = новый SimpleDateFormat ( "HH: мм: сс"); @Scheduled (хрон = "$ {scheduling.job.cron}") общественного недействительными reportCurrentTime () {LOGGER.info ( "Время теперь {}", dateFormat.format (новая дата ())); }} В настоящее время я загрузка cronjob синтаксиса из application.properties файла. Но я хочу, чтобы загрузить хроны синтаксиса из базы данных SQL в начале приложения Spring загрузки. Вот мой сценарий базы данных, которая имея синтаксис cronjob CREATE TABLE tbl_configuration_details (config_id INT NOT NULL, schedule_time INT NOT NULL, schedule_time_format NVARCHAR (10) NOT NULL, data_ttl INT NOT NULL,
Dharita Chokshi
1

голосов
2

ответ
58

Просмотры

Угловой 2 интерфейс не соединяясь с бэкэндом - ПОСЛЕ РАЗМЕЩЕНИЯ

Я разработал angular2 проект в http://www.demo.aranidhi.in Backend для этого приложения разрабатывается в весеннем ботинке, который размещен в http://env-7423163.cloud.cms500.com. Если я пытаюсь соединить передний и бэкенд я получаю эту ошибку Но это работает в девелоперской машине ... Я не знаю, как. Я думаю, что в то время как экспорт в войну я что-то отсутствует. Можете ли вы направить меня
Monicka Akilan
1

голосов
1

ответ
497

Просмотры

Начало Спринг загрузки Безопасность Работа с Azure AD

В настоящее время пытается получить Azure AD интегрирован с приложением Spring загрузки, я работаю. Я с использованием пакета лазурь-активного каталога весна-загрузки стартера, и следуя примеру, изложенным в официальной документации на веб-сайте Microsoft. Однако, когда, следуя примеру, я получаю следующее сообщение об ошибке: ossocrUserRedirectRequiredException: редирект требуется, чтобы получить одобрение пользователей Полный трассировки стека выглядит следующим образом: org.springframework.security.oauth2.client.resource.UserRedirectRequiredException: редирект требуется, чтобы получить одобрение пользователей на org.springframework.security.oauth2.client.token.grant.code.AuthorizationCodeAccessTokenProvider.getRedirectForAuthorization (AuthorizationCodeAccessTokenProvider.java:359) ~ [весна-безопасности-oauth2-2.0.14.RELEASE.jar: на] в org.springframework. security.oauth2.client.registered переадресация-Ури security.oauth2.client.pre учредил переадресацию-URI), но не смогли ничего нажимать совсем правильно. Я отправил комментарий к документу, но полагал, что я бы бросить его здесь, в случае, если кто имеет какую-либо идею!
ReservedDeveloper
1

голосов
1

ответ
1.8k

Просмотры

Spring Загрузочный тестирование java.lang.IllegalStateException: Не удалось загрузить ApplicationContext и недостающую боб

Я, кажется, попал сам в петлю, пытаясь исправить это. Я думал, что фасоль не хватает, так что я бы @MockBean имени класса он сказал, что это не хватает, запустить его снова, и он сказал бы еще один класс отсутствует. Классы это erroring над не даже те, я тестирую. Почему это происходит? Я знаю, что тест будет ошибка, когда он на самом деле работает. Но я могу работать с этим, в настоящее время это даже не попасть туда, я не думаю. Это мой тест: @RunWith (SpringRunner.class) @WebMvcTest (CompanyController.class) общественного класса CompanyTest {@Autowired личное MockMvc MVC; @MockBean CompanyService companyService; @Test общественный недействительный nameChangeIsSuccessful () бросает исключение {компании а = новую компанию ( "TestCompany", 1,1); Строка Старое_имя = a.getName (); Строка NEWNAME = " 191) в org.junit.runner.JUnitCore.run (JUnitCore.java:137) при com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs (JUnit4IdeaTestRunner.java:68) в com.intellij.rt.execution.junit.IdeaTestRunner $ Repeater .startRunnerWithArgs (IdeaTestRunner.java:51) при com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart (JUnitStarter.java:242) в com.intellij.rt.execution.junit.JUnitStarter.main (JUnitStarter.java:70 ) Вызванный: org.springframework.beans.factory.UnsatisfiedDependencyException: Ошибка при создании боб с именем 'companyController', определенных в файле [C: \ Users \ C1641195 \ Documents \ ComercialJava \ EvolveFork \ Team13_fork \ построить \ классы \ главная \ ком \ АНБ \ \ эволюционирует контроллер \ CompanyController.class]: Неудовлетворенная зависимость выражается через параметр конструктора 0; вложенное исключение org.springframework.beans.factory. NoSuchBeanDefinitionException: Нет квалификационная рожкового типа «» com.nsa.evolve.service.PeopleTypeService доступных: ожидается, по крайней мере, 1 боб, который квалифицируется как autowire кандидата. Зависимость от аннотаций: {} на org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray (ConstructorResolver.java:749) в org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor (ConstructorResolver.java:189) в Org. springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor (AbstractAutowireCapableBeanFactory.java:1193) при org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance (AbstractAutowireCapableBeanFactory.java:1095) при org.springframework.beans.factory.support. AbstractAutowireCapableBeanFactory. loadContext (DefaultCacheAwareContextLoaderDelegate.java:116) ... 25 еще не Вызванный: org.springframework.beans.factory.NoSuchBeanDefinitionException: Нет квалификационную боб типа «» com.nsa.evolve.service.PeopleTypeService доступных: ожидается, по крайней мере, 1 боб, который квалифицируется как autowire кандидата. Зависимость от аннотаций: {} на org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound (DefaultListableBeanFactory.java:1493) в org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency (DefaultListableBeanFactory.java:1104) в Org. springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency (DefaultListableBeanFactory.java:1066) при org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument (ConstructorResolver.java:
Aaria
1

голосов
0

ответ
2.4k

Просмотры

Spring : Cannot determine embedded database driver class for database type NONE

I want to run my project with active profile 'firza' But it gives me the following error. After searching on google I tried all the possible fixes but nothing worked :| Can anybody help me? application.properties spring.datasource.url=jdbc:mysql://localhost:3306/MySportsAcademy?createDatabaseIfNotExist=true spring.datasource.username=admin spring.datasource.password=ivl123 spring.data.rest.basePath=/api #spring.profiles.active=firza spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.jpa.properties.hibernate.dialect=com.ivl.MySportsAcademy.dbconfig.MySportsAcademyMysql57Dialect spring.jpa.hibernate.ddl-auto=update allowed.origins=http://localhost:9000 logging.level.org.springframework.security=DEBUG logging.level.org.hibernate.SQL=DEBUG logging.level.org.hibernate.type.descriptor.sql.BasicBinder=TRACE logging.level.org.apache.tomcat.jdbc.pool=DEBUG logging.level.com.reservos=DEBUG logging.level.com.sendgrid=DEBUG logging.level.org.hibernate.tool.hbm2ddl=debug server.port=3000 application-firza.properties spring.datasource.url=jdbc:mysql://localhost:3306/MySportsAcademy?createDatabaseIfNotExist=true spring.datasource.username=root spring.datasource.password=admin spring.data.rest.basePath=/api spring.jpa.hibernate.ddl-auto=update allowed.origins=http://localhost:9000 logging.level.org.springframework.security=DEBUG logging.level.org.hibernate.SQL=DEBUG logging.level.org.apache.tomcat.jdbc.pool=DEBUG logging.level.com.reservos=DEBUG logging.level.com.sendgrid=DEBUG logging.level.org.hibernate.tool.hbm2ddl=debug server.port=3000 [email protected] pom.xml mysql mysql-connector-java runtime Error *************************** APPLICATION FAILED TO START *************************** Description: Cannot determine embedded database driver class for database type NONE Action: If you want an embedded database please put a supported one on the classpath. If you have database settings to be loaded from a particular profile you may need to active it (the profiles "firza" are currently active).
SFAH
1

голосов
1

ответ
1.2k

Просмотры

JPA хранилища: список объектов, связанных с @Entity пуст, когда Entity возвращается с помощью FindAll ()

Я пишу тест на веб-сервис, который использует спящий режим, JPArepository и базы данных MySQL. Все хорошо работает там, данные предварительно загружены в базу данных и могут быть получены правильно (если тест не используется), однако тест не пройден. Тест использует H2 в базе данных памяти. Это ставит под угрозой: а) Сохранение MyEntity к базе данных Создания MyObjects и сохранение их в список Создания MyEntity с соответствующим Списком Сохранение MyEntity в хранилище б) Проверка может ли MyEntity быть извлечена с) Проверкой ли связанный списком MyEntity является там при получении Все работает отлично, за исключением последнего шага. На отладку, я обнаружил, что на самом деле при извлечении из хранилища с помощью findOne () или FindAll (), она возвращает MyEntity с пустым списком MyObjects. Я думаю, что проблема с этими вызовами, поскольку возвращаемый MyEntity объект Save () до сих пор список MyObjects. MyObjects связан с MyEntity с отношением @ManyToOne и FetchType ленив, однако я добавил запрос, чтобы иметь возможность получать EAGER (как здесь JPA: Регистрацию Fetch результаты NULL на пустых многих сторонах), и что не работает, либо - но на всякий случай я также попытался изменить FetchType к EAGER и что до сих пор не работает. (Посмотрев на Java JPA FetchType.EAGER не работает и Hibernate один-ко-многим нетерпеливые выборок не работают и Hibernate многих один нетерпеливый выборки не работает) Я читал на findOne и FindAll, но в соответствии с этим - При использовании getOne и findOne методы Spring Data JPA - это должно быть в порядке. Я долго искал ответы, хотя вполне возможно, что я что-то пропустил, и я м также новичок в спящий режим и кодирование вообще ... Образовательного помощь будет высоко ценится! Вот мой код: Во-первых, лицо, которое является MyObjects: пакет com.mypackage.representation; импорт com.fasterxml.jackson.annotation.JsonIgnore; импорт com.fasterxml.jackson.annotation.JsonProperty; импорт javax.persistence *. импорт java.io.Serializable; импорт java.math.BigDecimal; @Entity @Table (имя = "MyObject") общественный класс MyObject реализует Serializable {@Id @GeneratedValue (стратегию = GenerationType.AUTO) частный длинный идентификатор; @ManyToOne (выборка = FetchType.LAZY) @JoinColumn (имя = "my_entity_id") @JsonIgnore частный MyEntity myEntityId; частный BigDecimal SomeValue; защищенный MyObject () {} общественного MyObject (BigDecimal SomeValue) {this.someValue = SomeValue; } // Геттеры и сеттеры для краткости опущены} Далее MyEntity: пакет com.mypackage.representation; импорт com.fasterxml.jackson.annotation.JsonIgnore; импорт com.fasterxml.jackson.annotation.JsonIgnoreProperties; импорт com.fasterxml.jackson.annotation.JsonProperty; импорт javax.persistence *. импорт java.io.Serializable; импорт java.math.BigDecimal; импорт java.util.List; @Entity @JsonIgnoreProperties ({ "hibernateLazyInitializer", "Обработчик"}) класс MyEntity общественность реализует Serializable {@Id @JsonProperty ( "some_id") частный Int someId; @OneToMany (mappedBy = "myEntityId", каскад = CascadeType.ALL, принесите = FetchType.LAZY) @JsonProperty ( "MyObject") частный Список myObjects; защищенный MyEntity () {} общественного MyEntity (интермедиат someId, Список myObjects) {this.someId = someId; this.myObjects = myObjects =} // Геттеры и сеттеры опущенные для краткости} Код Теста в: пакет com.mypackage; импорт com.mypackage.repository.MyEntityRepository; импорт com.mypackage.representation.MyObject; импорт com.mypackage.representation.MyEntity; импорт org.hibernate.Session; импорт org.junit.Rule; импорт org.junit.Test; импорт org.junit.runner.RunWith; импорт org.springframework.beans.factory.annotation.Autowired; импорт org.springframework.boot.test.context.SpringBootTest; импорт org.springframework.test.context.junit4.SpringRunner; импорт java.math.BigDecimal; импорт java.util.ArrayList; импорт java.util.List; импортировать статические org.junit.Assert.assertEquals; импортировать статический org.junit.Assert.assertNotNull; @RunWith (SpringRunner. класс) @SpringBootTest общественного класса MyApplicationTests {@Rule общественного конечного SessionFactoryRule SF = новый SessionFactoryRule (); @Autowired MyEntityRepository myEntityRepository; @Test общественного недействительный returnsMyEntityForSomeId () {Сессия сессия = sf.getSession (); INT someId = 0; Список myObjects = createMyObjects (); INT numberOfMyObjectsIn = myObjects.size (); MyEntity MyEntity = createMyEntity (myObjects, someId); MyEntity сохранены = myEntityRepository.save (MyEntity); sf.commit (); // Проверка, что объекты загружаются в список базы данных allMyEntities = myEntityRepository.findAll (); assertNotNull (allMyEntities); // Проверка, что MyEntity для данного someId возвращается, с myObjects, присвоенный - код функции выборки ниже MyEntity thisEntity = myEntityRepository.findByIdAndFetchMyObjectsEagerly (someId); assertNotNull (thisEntity); . INT numberOfMyObjectsOut = (thisEntity.getMyObjects ()) размер (); assertNotNull (thisEntity.getMyObjects ()); // Это следующий тест не пройден: assertEquals (numberOfMyObjectsIn, numberOfMyObjectsOut); } Частные Список createMyObjects () {MyObject myObjectOne = новый MyObject (BigDecimal.valueOf (40)); MyObject myObjectTwo = новый MyObject (BigDecimal.valueOf (50)); MyObject myObjectThree = новый MyObject (BigDecimal.valueOf (60)); Список myObjects = новый ArrayList (); myObjects.add (myObjectOne); myObjects.add (myObjectTwo); myObjects.add (myObjectThree); вернуться myObjects; } Частный MyEntity createMyEntity (Список myObjects, внутр someId) {возвратить новый MyEntity (someId, myObjects); }} Вот код для функции выборки: пакет com.mypackage.repository; импорт com.mypackage.representation.MyEntity; импорт org.springframework.data.jpa.repository.JpaRepository; импорт org.springframework.data.jpa.repository.Query; импорт org.springframework.data.repository.query.Param; импорт org.springframework.transaction.annotation.Propagation; импорт org.springframework.transaction.annotation.Transactional; @Transactional (распространение = Propagation.REQUIRED, только для чтения = ложь) общедоступный интерфейс MyEntityRepository расширяет JpaRepository {@Query ( "Выберите ИЗ MyEntity левого РЕГИСТРИРУЙТЕСЬ FETCH a.myObjects ГДЕ a.someId = (: someId)") MyEntity findByIdAndFetchMyObjectsEagerly (@param (» тест Object) {вернуть новое заявление () {@Override общественного недействительными оценки () бросает Throwable {SessionFactory = createSessionFactory (); CreateSession (); BeginTransaction (); попробуйте {statement.evaluate (); } Наконец {отключение (); }}}; } Частная пустота выключения () {попробуйте {попробуйте {попробуйте {hibernateTransaction.rollback (); } Задвижка (Исключение ех) {ex.printStackTrace (); } Session.close (); } Задвижка (Исключение ех) {ex.printStackTrace (); } SessionFactory.close (); } Задвижка (Исключение ех) {ex.printStackTrace (); }} Частная SessionFactory createSessionFactory () {Конфигурация конфигурации = новая конфигурация (); configuration.addAnnotatedClass (MyEntity.class) .addAnnotatedClass (MyObject.class); configuration.setProperty ( "hibernate.dialect", "org.hibernate.dialect.H2Dialect"); configuration.setProperty ( "hibernate.connection.driver_class", "org.h2.Driver"); configuration.setProperty ( "hibernate.connection.url", "JDBC: h2: MEM: ./ дБ"); configuration.setProperty ( "hibernate.hbm2ddl.auto", "создать-обновление"); ServiceRegistry serviceRegistry = новый StandardServiceRegistryBuilder (). ApplySettings (configuration.getProperties ()) построить (). System.out.println ( "Спящий serviceRegistry создан"); SessionFactory SessionFactory = configuration.buildSessionFactory (serviceRegistry); вернуться SessionFactory; } Публичная сессия CreateSession () {сессия = sessionFactory.openSession (); вернуться сессии; } Общественного недействительными фиксации () {hibernateTransaction.commit (); } Общественного недействительными BeginTransaction () {hibernateTransaction = session.beginTransaction (); } GetSession общественности Session () {возвращение сессии; }} } Публичная сессия CreateSession () {сессия = sessionFactory.openSession (); вернуться сессии; } Общественного недействительными фиксации () {hibernateTransaction.commit (); } Общественного недействительными BeginTransaction () {hibernateTransaction = session.beginTransaction (); } GetSession общественности Session () {возвращение сессии; }} } Публичная сессия CreateSession () {сессия = sessionFactory.openSession (); вернуться сессии; } Общественного недействительными фиксации () {hibernateTransaction.commit (); } Общественного недействительными BeginTransaction () {hibernateTransaction = session.beginTransaction (); } GetSession общественности Session () {возвращение сессии; }}
bekimarton
1

голосов
1

ответ
613

Просмотры

Найти относительный путь к FileSystemResource (Spring загрузки)

Резюме Весной, я могу получить доступ к ресурсу, указав путь относительно моего Src / основной / ресурсов / директории. Например, если я прошу /public/index.html, я получу FileSystemResource, представляющий /Users/.../src/main/resources/public/index.html. Тем не менее, я не вижу путь в обратном направлении. Учитывая FileSystemResource, есть способ, чтобы найти свой путь относительно SRC / основные / ресы /? Пример Я использую PathMatchingResourcePatternResolver, чтобы получить список файлов ресурсов в моем приложении. Ресурсы мне нужно расположены в ЦСИ моего приложения / главная / ресурсы / общественный / папке. ResourcePatternResolver распознаватель = новый PathMatchingResourcePatternResolver (); для. (ресурс г: resolver.getResources ( "/ открытый / **")) {// r.getURI () GetString () дает мне абсолютный путь. } Я могу легко получить абсолютный путь, но я
jchamberlain
1

голосов
1

ответ
352

Просмотры

весна загрузка - как остановить обработку апи бэкенд остального после того, как интерфейс закрыт

Я использую ботинки пружинных создать успокоительное приложение бэкэнда и внешний интерфейс с помощью Vue. Когда кто-то посылает запрос на отдых в моем серверном приложении через мой фронтэнд веб-страницу, можно остановить поток обработки бэкенда после веб-страницы или веб-браузера закрыт? Благодарю. С уважением, Бен
ben
1

голосов
0

ответ
1.5k

Просмотры

Настройка несколько контейнеров сообщения слушателя в Spring ботинке

Не уверен, что, если я просто быть плотным, но я пытаюсь настроить пружину (без конфигурации XML) для подключения к RabbitMQ. Я могу заставить его работать просто отлично, создав единый SmartMessageListenerContainer, чтобы получать сообщения от моих очередей, но где я спотыкаясь, как создать группу контейнеров для прослушивания на одной и той же очереди. Я понимаю, что вы получаете один контейнер с одним слушателем сообщений в очереди, но что вы можете настроить несколько контейнеров для прослушивания одной и той же очереди. Моя цель состоит в том, чтобы реализовать стратегию очереди работника, который RabbitMQ DOCS контура (одна очереди, несколько рабочих). То, что я пытаюсь достичь, это одно сообщение слушатель / работник в доставке сообщений (упреждающей = 1) и пул контейнеров сообщений, связанных с одной очереди, чтобы эффективно создать свой пул рабочих. В конечном счете все это должно быть динамичным, потому что каждый экземпляр моей службы должен быть настроен соответствующим образом с ожидаемым количеством работы, которую предстоит сделать. Некоторые экземпляры, возможно, потребуется лишь несколько рабочих и другие, возможно, потребуется много. Поэтому декларирование боба для каждого контейнера реально не работает в моем случае, потому что я не знаю заранее, сколько мне нужно. Кроме того, он, кажется, фанк, чтобы сделать что-то подобное (что большинство примеров, которые я видел сделать): @Bean SimpleMessageListenerContainer container1 () {...} @Bean SimpleMessageListenerContainer container2 () {...} @Bean SimpleMessageListenerContainer container3 () {...} Ниже мой текущий код, я зарегистрировать компонент, который возвращает коллекцию контейнеров. Этот метод автоматически вызывается и создает все контейнеры, как и ожидалось, но контейнеры никогда не кажется, автоматического запуска (который я вполне уверен, я понимаю, почему так я создаю контейнеры вручную). Я попытался вручную вызвать метод Start () на каждый контейнер после создания, но есть 60 вторая задержка на каждый контейнер, когда этот маленький кусочек коды достигается: AsyncMessageProcessingConsumer частного FatalListenerStartupException getStartupException () бросает TimeoutException, InterruptedException {это. start.await (60000L, TimeUnit.MILLISECONDS); вернуться this.startupException; } Я тем не менее увидеть один пост, который упомянул, нуждающихся в реализации интерфейса SmartLifeCycle. Я мог бы, конечно, сделать это на моем классе конфигурации ниже, а затем вызвать метод запуска () на каждый контейнер я создал, когда мой метод запуска () вызывается. Это мой единственный вариант или я просто полностью отсутствует что-то здесь? Мой кролик Класс настройки: @Configuration общественного класса RabbitConfiguration {частный окончательный список listenerContainers; частные конечные булевы useDurableQueues; частная окончательная строка exchangeName; частная окончательная строка inboundQueueName; частная окончательная строка outboundQueueName; частный окончательный хозяин строки; частная окончательная строка Virtualhost; частное окончательное строку имя; частный окончательная строка пароль; частные конечные ИНТ maxWorkers; общественного RabbitConfiguration (@value ( "$ {com.unwiredrev.remotelink.rabbitmq.exchangeName}") окончательная строка exchangeName, @value ( "$ {com.unwiredrev.remotelink.rabbitmq.inboundQueueName}") окончательная строка inboundQueueName, @value ( «$ {com.unwiredrev.remotelink.rabbitmq. exchangeName = exchangeName; this.inboundQueueName = inboundQueueName; this.outboundQueueName = outboundQueueName; this.useDurableQueues = useDurableQueues; this.host = хост; this.virtualHost = VirtualHost; this.userName = имя_пользователя; this.password = пароль; this.maxWorkers = maxWorkers; this.listenerContainers = новые ArrayList (maxWorkers); } Строка общественного getExchangeName () {вернуться exchangeName; } Строка общественного getInboundQueueName () {вернуться inboundQueueName; } Строка общественного getOutboundQueueName () {вернуться outboundQueueName; } Общественных булевы useDurableQueues () {вернуть useDurableQueues; } Строка getHost общественности () {возвращение хозяина; } Общественности Дополнительный getVirtualHost () {вернуться Optional.ofNullable (StringUtils.trimToNull (this.virtualHost)); } Строка GetUserName общественности () {возвращение имя_пользователя; } Строка GetPassword общественности () {возвращение пароля; } Общественных ИНТ getMaxWorkers () {вернуться maxWorkers; } @Bean Коллекция messageListenerContainers (@NotNull ConnectionFactory ConnectionFactory, @NotNull RabbitAdmin rabbitAdmin) {IntStream.range (0, getMaxWorkers ()) .forEach (IDX -> {конечная SimpleMessageListenerContainer контейнер = новый SimpleMessageListenerContainer (); container.setQueueNames (inboundQueueName); container.setConnectionFactory (ConnectionFactory); container.setMessageListener (новый MessageReceiver ()); container.setAcknowledgeMode (AcknowledgeMode.MANUAL); container.setRabbitAdmin (rabbitAdmin); listenerContainers.add (контейнер);}); вернуться listenerContainers; } @Bean RabbitAdmin rabbitAdmin (@NotNull ConnectionFactory ConnectionFactory) {вернуть новый RabbitAdmin (ConnectionFactory); } @Bean ConnectionFactory ConnectionFactory () {конечная CachingConnectionFactory ConnectionFactory = новый CachingConnectionFactory (getHost ()); connectionFactory.setUsername (GetUserName ()); connectionFactory.setPassword (GetPassword ()); . GetVirtualHost () ifPresent (ConnectionFactory :: setVirtualHost); вернуться ConnectionFactory; } @Bean (имя = "rlClientExchange") TopicExchange getExchange () {вернуть новый TopicExchange (getExchangeName (), правда, ложь); } @Bean (имя = "rlClientInboundQueue") Очередь inboundQueue () {возврата новой очереди (getInboundQueueName (), useDurableQueues ()); } @Bean Очередь outboundQueue () {возврата новой очереди (getOutboundQueueName (), useDurableQueues ()); } @Bean Binding inboundQueueBinding (@NotNull окончательный обмен TopicExchange) {если (обмен == NULL) {бросить новый IllegalArgumentException ( "Кролик тема обмен не может быть пустым."); } Вернуть BindingBuilder.bind (inboundQueue ()) .to (обмен) .с (getInboundQueueName ()); } @Bean Binding outboundQueueBinding (@NotNull окончательный обмен TopicExchange) {если (обмен == NULL) {бросить новый IllegalArgumentException ( "Кролик тема обмен не может быть пустым."); } Вернуть BindingBuilder.bind (outboundQueue ()) .to (обмен) .с (getOutboundQueueName ()); }} } @Bean Binding inboundQueueBinding (@NotNull окончательный обмен TopicExchange) {если (обмен == NULL) {бросить новый IllegalArgumentException ( "Кролик тема обмен не может быть пустым."); } Вернуть BindingBuilder.bind (inboundQueue ()) .to (обмен) .с (getInboundQueueName ()); } @Bean Binding outboundQueueBinding (@NotNull окончательный обмен TopicExchange) {если (обмен == NULL) {бросить новый IllegalArgumentException ( "Кролик тема обмен не может быть пустым."); } Вернуть BindingBuilder.bind (outboundQueue ()) .to (обмен) .с (getOutboundQueueName ()); }} } @Bean Binding inboundQueueBinding (@NotNull окончательный обмен TopicExchange) {если (обмен == NULL) {бросить новый IllegalArgumentException ( "Кролик тема обмен не может быть пустым."); } Вернуть BindingBuilder.bind (inboundQueue ()) .to (обмен) .с (getInboundQueueName ()); } @Bean Binding outboundQueueBinding (@NotNull окончательный обмен TopicExchange) {если (обмен == NULL) {бросить новый IllegalArgumentException ( "Кролик тема обмен не может быть пустым."); } Вернуть BindingBuilder.bind (outboundQueue ()) .to (обмен) .с (getOutboundQueueName ()); }} } Вернуть BindingBuilder.bind (inboundQueue ()) .to (обмен) .с (getInboundQueueName ()); } @Bean Binding outboundQueueBinding (@NotNull окончательный обмен TopicExchange) {если (обмен == NULL) {бросить новый IllegalArgumentException ( "Кролик тема обмен не может быть пустым."); } Вернуть BindingBuilder.bind (outboundQueue ()) .to (обмен) .с (getOutboundQueueName ()); }} } Вернуть BindingBuilder.bind (inboundQueue ()) .to (обмен) .с (getInboundQueueName ()); } @Bean Binding outboundQueueBinding (@NotNull окончательный обмен TopicExchange) {если (обмен == NULL) {бросить новый IllegalArgumentException ( "Кролик тема обмен не может быть пустым."); } Вернуть BindingBuilder.bind (outboundQueue ()) .to (обмен) .с (getOutboundQueueName ()); }} с (getOutboundQueueName ()); }} с (getOutboundQueueName ()); }}
Travis Beech
1

голосов
0

ответ
787

Просмотры

Настройка JNDI URL ресурсов встроенных приложений Tomcat Spring загрузки

Я имею приложение загрузки Spring со встроенным сервером Tomcat. Мое приложение делает JNDI Ищет из DataSource и файл конфигурации URL. Я могу настроить JNDI источника данных, но я не смог настроить JNDI URL во встроенном Tomcat. То же самое приложение, когда развертывается как WAR на автономный сервер Liberty работает отлично, как Liberty правильно настроен с JNDI источника данных и URL файла конфигурации. Также JNDI источников данных и URL-адреса определяются в весеннем конфигурационном файле в баночку моего приложения, который является общим, и я не могу изменить его, но только импорт. Это, как я пытаюсь настроить внедренный импорт java.net.URL кот; импорт javax.sql.DataSource; импорт org.apache.catalina.Context; импорт org.apache.catalina.startup.Tomcat; импорт org.apache.tomcat.util.descriptor.web.ContextResource; импорт org.springframework.boot.SpringApplication; импорт орг. springframework.boot.autoconfigure.SpringBootApplication; импорт org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; импорт org.springframework.boot.autoconfigure.jmx.JmxAutoConfiguration; импорт org.springframework.boot.builder.SpringApplicationBuilder; импорт org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer; импорт org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; импорт org.springframework.boot.web.support.SpringBootServletInitializer; импорт org.springframework.context.annotation.Bean; импорт org.springframework.context.annotation.ImportResource; импорт org.springframework.context.annotation.Profile; @SpringBootApplication (исключить = {JmxAutoConfiguration.class, DataSourceAutoConfiguration.class}) @ImportResource (места = { «путь к классам: } @Override защищен недействительным postProcessContext (контекст контекста) {ContextResource ресурс = новый ContextResource (); resource.setName ( "JDBC / myDataSource"); resource.setType (DataSource.class.getName ()); resource.setProperty ( "driverClassName", "oracle.jdbc.OracleDriver"); resource.setProperty ( "URL", "оракул: JDBC: тонкий: @sadasd"); resource.setProperty ( "Имя пользователя", "администратор"); resource.setProperty ( "пароль", "администратор"); resource.setProperty ( "фабрика", "org.apache.tomcat.jdbc.pool.DataSourceFactory"); context.getNamingResources () addResource (ресурс). ContextResource queryOnlyDataSourceResource = новый ContextResource (); queryOnlyDataSourceResource.setName ( "JDBC / queryOnlyDataSource"); queryOnlyDataSourceResource.setType (DataSource.class.getName ()); queryOnlyDataSourceResource.setProperty ( "driverClassName", "oracle.jdbc.OracleDriver"); queryOnlyDataSourceResource.setProperty ( "URL", "оракул: JDBC: тонкий: @osajodoajo"); queryOnlyDataSourceResource.setProperty ( "Имя пользователя", "администратор"); queryOnlyDataSourceResource.setProperty ( "пароль", "администратор"); queryOnlyDataSourceResource.setProperty ( "фабрика", "org.apache.tomcat.jdbc.pool.DataSourceFactory"); контекст. . GetNamingResources () addResource (queryOnlyDataSourceResource); ContextResource dataSourceOrbisExport = новый ContextResource (); dataSourceOrbisExport.setName ( "JDBC / exportDataSource"); dataSourceOrbisExport.setType (DataSource.class.getName ()); dataSourceOrbisExport.setProperty ( "driverClassName", "oracle.jdbc.OracleDriver"); dataSourceOrbisExport.setProperty ( "URL", "оракул: JDBC: тонкий: @saddalsdkla"); dataSourceOrbisExport.setProperty ( "Имя пользователя", "администратор"); dataSourceOrbisExport.setProperty ( "пароль", "администратор"); dataSourceOrbisExport.setProperty ( "фабрика", "org.apache.tomcat.jdbc.pool.DataSourceFactory"); . Context.getNamingResources () addResource (dataSourceOrbisExport); // Файл конфигурации ContextResource engineConfigResource = новый ContextResource (); evolutionEngineConfigResource.setName ( "URL / engineConfig"); evolutionEngineConfigResource.setType (URL.class.getName ()); resource.setProperty ( "протокол", "файл"); evolutionEngineConfigResource.setProperty ( "Файл", "C: /configuration_DIT/EngineConfig.config"); . Context.getNamingResources () addResource (engineConfigResource); ContextResource evolutionPresentationConfigResource = новый ContextResource (); presentationConfigResource.setName ( "URL / presentationConfig"); presentationConfigResource. SetType (URL.class.getName ()); resource.setProperty ( "протокол", "файл"); evolutionPresentationConfigResource.setProperty ( "Файл", "C: /configuration_DIT/presentation.config"); . Context.getNamingResources () addResource (presentationConfigResource); }}; }} Это то, что говорит об ошибке: требуется боб типа «java.net.URL», которые не могут быть найдены. Связанные причины: org.springframework.beans.factory.BeanCreationException: Ошибка при создании боба с именем «engineConfig»: Призвание инициализации методы не удался; вложенное исключение javax.naming.NameNotFoundException: Имя [URL / engineConfig] не связан в этом контексте. Не удалось найти [URL]. evolutionPresentationConfigResource.setProperty ( "Файл", "C: /configuration_DIT/presentation.config"); . Context.getNamingResources () addResource (presentationConfigResource); }}; }} Это то, что говорит об ошибке: требуется боб типа «java.net.URL», которые не могут быть найдены. Связанные причины: org.springframework.beans.factory.BeanCreationException: Ошибка при создании боба с именем «engineConfig»: Призвание инициализации методы не удался; вложенное исключение javax.naming.NameNotFoundException: Имя [URL / engineConfig] не связан в этом контексте. Не удалось найти [URL]. evolutionPresentationConfigResource.setProperty ( "Файл", "C: /configuration_DIT/presentation.config"); . Context.getNamingResources () addResource (presentationConfigResource); }}; }} Это то, что говорит об ошибке: требуется боб типа «java.net.URL», которые не могут быть найдены. Связанные причины: org.springframework.beans.factory.BeanCreationException: Ошибка при создании боба с именем «engineConfig»: Призвание инициализации методы не удался; вложенное исключение javax.naming.NameNotFoundException: Имя [URL / engineConfig] не связан в этом контексте. Не удалось найти [URL]. }}; }} Это то, что говорит об ошибке: требуется боб типа «java.net.URL», которые не могут быть найдены. Связанные причины: org.springframework.beans.factory.BeanCreationException: Ошибка при создании боба с именем «engineConfig»: Призвание инициализации методы не удался; вложенное исключение javax.naming.NameNotFoundException: Имя [URL / engineConfig] не связан в этом контексте. Не удалось найти [URL]. }}; }} Это то, что говорит об ошибке: требуется боб типа «java.net.URL», которые не могут быть найдены. Связанные причины: org.springframework.beans.factory.BeanCreationException: Ошибка при создании боба с именем «engineConfig»: Призвание инициализации методы не удался; вложенное исключение javax.naming.NameNotFoundException: Имя [URL / engineConfig] не связан в этом контексте. Не удалось найти [URL].
grsdev7
1

голосов
1

ответ
322

Просмотры

Удалить ресурс весной остальные данные hateoas с отношением

У меня есть категория, пункт и роли для ресторана. Я могу получить и запрос POST с помощью почтальона, но при попытке удалить запись в «категории» это не дает 204 - никакого содержания, но данные все еще не удалены. это потому, что категория имеет много для одного отношения с рестораном. с другой стороны, если я делаю запрос DELETE для ролей она прекрасно работает, не имеет прямого отношения. POJO для категорий @Entity @Table (имя = "Категория") класс Категория общественного {@Id @GeneratedValue (стратегия = GenerationType.IDENTITY) частное ИНТ идентификатор; частное имя строки; @ManyToOne @JoinColumn (имя = "restaurantId") частный ресторан ресторан; @OneToMany (mappedBy = "категория", принеси = FetchType.EAGER, каскадные = CascadeType.ALL) частные элементы Set; общественная Категория () {} @Autowired общественная Категория (название String, ресторан ресторана, установить элементы) {this.name = имя; this.restaurant = ресторан; this.items = предметы; } Общественного ИНТ GetId () {возвращение идентификатор; } Общественного недействительными SETID (интермедиат ID) {this.id = ID; } Строка GetName () {имя общественного возврата; } Общественной недействительная SetName (имя String) {this.name = имя; } Установить GetItems общественного () {возвращает элементы; } общественного недействительными setItems (набор элементов) {this.items = предметы; } Общественного Ресторан getRestaurant () {возвращение ресторан; } Общественного недействительный setRestaurant (ресторан ресторан) {this.restaurant = ресторан; }} POJO для ролей @Entity @Table (Name = "Роль" ) Класс Роль общественности {@Id @GeneratedValue (стратегия = GenerationType.IDENTITY) частное ИНТ идентификатор; частное имя строки; @OneToMany (mappedBy = "роль", принеси = FetchType.EAGER, каскад = CascadeType.ALL) частные пользователи Set; общественная роль () {} @Autowired общественности Роль (имя String, Set пользователи) {this.name = имя; this.users = пользователей; } Общественного ИНТ GetId () {возвращение идентификатор; } Общественного недействительными SETID (интермедиат ID) {this.id = ID; } Строка GetName () {имя общественного возврата; } Общественной недействительная SetName (имя String) {this.name = имя; } Общественного Set GetUser () {вернуть пользователей; } общественного недействительный setUsers (набор пользователей) {this.users = пользователи;
shankara narayanan
1

голосов
0

ответ
454

Просмотры

Spring boot - slow method execution

У меня есть огромная проблема с выполнением методы (я думаю). Я использую Spring загрузки 2.0 (протестировано с 1.5.x, а) + Thymeleaf 3. Случай: Когда приложение запущено более около 48 ч (для ЭГ), представляя простую форму POST с 2-х полей занимает ок. 15 секунд. Метод не все, что связано с БД не назовешь. @RequestMapping (значение = "/ добавить", метод = RequestMethod.POST) публичная Строка addTile (модель модель, @Valid @ModelAttribute ( "плитка") Плитка плитка, результаты BindingResult) {если (results.hasErrors ()) {возвращение " плитка / добавить "; } TileRepository.save (плитка); вернуться "переадресовать: /"; } После того, как было найдено много тестов, которые я сделал, нет памяти, JDBC, подключение лук-порей и т.д.. С GC точки зрения, не существует какой-то странный тоже. Я использовал JProfiler и от исполнения стеки методы, задержка происходит из самого метода. Когда я переключил VPS на другой хостинг-провайдер и изменил сеансы Redis, производительность была значительно улучшена, может быть, 30% -40%, но по-прежнему не работает должным образом. Я тестировал приложение с JMeter для проблем параллелизма, но все идеально, и ответ очень хорошо. Эти вопросы выходят только если приложение работает более thatn 24h / 48h и нет активных пользователей. Версия виртуальной машины Java является Java 8 OpenJDK (сборка 1.8.0_151-b12) без каких-либо пользовательских настроек .. Спасибо заранее. ве протестировали приложение с JMeter для проблем параллелизма, но все идеально, и ответ очень хорошо. Эти вопросы выходят только если приложение работает более thatn 24h / 48h и нет активных пользователей. Версия виртуальной машины Java является Java 8 OpenJDK (сборка 1.8.0_151-b12) без каких-либо пользовательских настроек .. Спасибо заранее. ве протестировали приложение с JMeter для проблем параллелизма, но все идеально, и ответ очень хорошо. Эти вопросы выходят только если приложение работает более thatn 24h / 48h и нет активных пользователей. Версия виртуальной машины Java является Java 8 OpenJDK (сборка 1.8.0_151-b12) без каких-либо пользовательских настроек .. Спасибо заранее.
ROZZ
1

голосов
2

ответ
1.3k

Просмотры

Подключение к MySQL через SSH и с помощью Spring бутса

В моей весне Bootapp ВОЙНЕ, У меня есть файл, в котором application.properties я определил следующие свойства DataSource: spring.datasource.url = JDBC: MySQL: // локального / тест autoReconnect = истина & UseSSL = ложь и rewriteBatchedStatements = истина spring.datasource.username = б spring.datasource.password = пароль-имя-класса spring.datasource.driver = com.mysql.jdbc.Driver с этим, я могу подключиться к базе данных. Теперь я хочу, чтобы подключиться к другой базе данных через SSH туннель. Как следует указать spring.datasource.url получить такое соединение? Пожалуйста, обратите внимание, я не хочу писать код котла пластины Java, чтобы сделать это SSH туннелирование! PS Я Googled, но не смог найти удовлетворительный ответ в любом месте.
Akshay Lokur
1

голосов
0

ответ
183

Просмотры

Test if a collection is loaded in Spring DataJpaTest

I am having troubles testing whether a collection is loaded in Spring DataJpaTest. For that I have created an entity that has id and list of items as seen below. The list should be lazy-loaded (so I am assuming it should not be loaded in the test). @Data @Entity @Table(name = "examples") public class Example { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) protected Long id; @OneToMany(mappedBy = "example", cascade = CascadeType.ALL, fetch = FetchType.LAZY) private List collection; } Repository code looks like this: @Repository public interface ExampleRepository extends PagingAndSortingRepository { @Query("SELECT e FROM Example e") List findAllActive(); } In the test I am creating a new Example entity, generating the collection, saving the entity to database and after that getting entities from database and checking whether the collections are initialized. Test code looks like this: @RunWith(SpringRunner.class) @DataJpaTest @AutoConfigureTestDatabase(replace = Replace.NONE) public class ExampleRepositoryTest { @Autowired private ExampleRepository repository; @Test public void myTest() { Example example = new Example(); example.setCollection(Utils.generateCollection())) repository.save(example); List actives = repository.findAllActive(); // tests in a loop whether the collection is initialized which should return false } I have tried the following: Injecting TestEntityManager and getting the PersistenceUnitUtil from there using em.getEntityManager().getEntityManagerFactory().getPersistenceUnitUtil() and calling the isLoaded(actives.get(0).getCollection()) and isLoaded(actives.get(0), "collection") methods - both return true Calling Hibernate.isInitialized(actives.get(0).getCollection()) and Hibernate.isPropertyInitialized(actives.get(0), "collection") methods, which both return true as well. Checking what the collection contains - it is a PersistentBag containing the elements. I expect it to be null instead. What am I missing?
Janar
1

голосов
1

ответ
901

Просмотры

Как слушать правое сообщение ACK от Кафки

Я делаю ДОУ с Spring ботинком и Кафка для транзакционного проекта и у меня есть следующее сомнение: Сценарий: Один microservices MSPUB1 получает запросы от клиента. Это просит опубликовать сообщение на тему TRANSACTION_TOPIC1 на Кафку, но что Microservice может принимать множество запросов параллельно. Microservice слушает топика TRANSACTION_RESULT1, чтобы проверить, что сделка завершена. В другой стороне платформы Streaming, другой Microservice MSSUB1 слушает топику TRANSACTION_TOPIC1 и обрабатывать все сообщения и опубликовать результаты по: TRANSACTION_RESULT1 Что такое лучший способ от MSPUB1 знать, если сообщение на тему TRANSACTION_RESULT1 совпадает с его исходным запросом? Microservice MSPUB1 может иметь идентификатор для любого сообщения, опубликованного на начальную тему TRANSACTION_TOPIC1 и быть перемещен в TRANSACTION_RESULT1 Вопрос: Когда вы читаете раздел, вы перемещаете указатель, но в параллелизме среды с несколькими запросами, как если сообщение на проверки тема TRANSACTION_RESULT1 это ожидается? Большое спасибо заранее Хуан Антонио
jabrena
1

голосов
1

ответ
568

Просмотры

Spring boot application error from dispatcherServlet under load testing

Декларация: Этот вопрос не так прост, как NullPointerException или как бороться с NPE. Речь идет о многопоточном программировании. Я знаю, как поймать исключение, проблема в том, что я не могу найти источник этого исключения, и даже не могу понять, что проблема является узким местом или ошибка в логике. Так что я пришел сюда, чтобы просить вашей помощи. И, наконец, я нашел ошибку и решить ее в моем ответе. Я разработал REST API для загрузки куска в приложении Spring загрузки и прошел тестирование функциональности. Ниже приведена информация версии. Spring загрузка 1.5.8 с Embedded Tomcat Теперь я хочу оценить производительность при нагрузочном тестировании с JMeter. И я разработал план тестирования и подтвержден его в нежной нагрузке успешно. Вот мой тест план о свойствах темы, числе нитей (пользователи): 3 Ramp-Up Период (в секундах): 1 Loop Count: 3 Но, когда нагрузка увеличена до 10 нитей или даже более, в протоколе испытаний показали некоторые ошибки 500 типа. И сервер печататься некоторые ошибки 2018-01-20 20: 34: 23.744 ОШИБКА 57809 --- [о-8083-Exec-346] oaccC [[[/] [DispatcherServlet]:... Servlet.service () для сервлета [DispatcherServlet] в контексте с пути [] выбросил исключение [обработка запроса не удалось; вложенное исключение java.lang.NullPointerException] с первопричиной java.lang.NullPointerException: нуль Означает ли это, что сервер достиг узкого места или что-то пойдет не так логично? И как я могу отладить и проследить эту проблему? Благодарю. .. [[/] [DispatcherServlet]: Servlet.service () для сервлета [DispatcherServlet] я п контекст с путем [] бросил исключение [обработка запроса не удалась; вложенное исключение java.lang.NullPointerException] с первопричиной java.lang.NullPointerException: нуль Означает ли это, что сервер достиг узкого места или что-то пойдет не так логично? И как я могу отладить и проследить эту проблему? Благодарю. .. [[/] [DispatcherServlet]: Servlet.service () для сервлета [DispatcherServlet] я п контекст с путем [] бросил исключение [обработка запроса не удалась; вложенное исключение java.lang.NullPointerException] с первопричиной java.lang.NullPointerException: нуль Означает ли это, что сервер достиг узкого места или что-то пойдет не так логично? И как я могу отладить и проследить эту проблему? Благодарю.
LeoZhang
1

голосов
0

ответ
145

Просмотры

Spring Batch с помощью Spring бутсу и модули Maven

Во время работы над Spring Batch проекта, я хотел бы создавать модули для каждого из необходимых пакетных функций. Например, ниже показан тег в файле pom.xml: db_common sor_one sor_two где модуль db_common будет иметь общую конфигурацию базы данных для создания DataSouce, которая совместно используется всеми модулями. Модуль sor_one будет иметь банку для @Configuration и классов для SOR # 1, а модуль sor_two будет иметь банку для @Configuration и связанных с ними классов для SOR # 2. Когда я готов работать в этом, я буду запускать два приложения. Один для sor_one, а другой для sor_two, поставив соответствующий файл банку на CLASSPATH для каждого из приложений. Я заметил, что некоторые дискуссии с помощью пружинной загрузочной Maven-плагина. В том числе этот плагин, кажется, жаловаться я не» т имеют основную функцию в sor_one и sor_two проектов. Пожалуйста, руководство меня, как я должен быть что-то отсутствует о плагине, и теперь я хотел бы организовать свои приложения. Спасибо вам большое! С уважением, Student_t
student_t
1

голосов
0

ответ
828

Просмотры

Spring boot 2 Transaction managers and 2 @Transactional

У меня есть Spring загрузки с двумя базами данных (первый и второй). У меня есть эта рабочая конфигурация: @Bean общественного DataSourceTransactionManager firstDbTransactionManager (@Qualifier ( "primaryDataSource") DataSource DataSource) {возвратить новый DataSourceTransactionManager (источник данных); } @Bean общественного DataSourceTransactionManager secondDbTransactionManager (@Qualifier ( "secondaryDataSource") DataSource DataSource) {возвратить новый DataSourceTransactionManager (источник данных); } И у меня есть метод, который нужно быть @Transactional как для дб. Что я делаю все время, и она отлично работает: @Autowired частный SubscriptionFeeService thisBeanSelfProxy; @Transactional ( "firstDbTransactionManager") общественного недействительными withdrawalOfMonthlyFee (Проект) бросает исключение {thisBeanSelfProxy.intermediateMethod (проект); } @Transactional (» } Общественных недействительный withdrawalOfMonthlyFeeInner (Проект) бросает исключение {firstDbRepository.update (проект); secondDbRepostory.addNewOperationToProjectTable (project.generateOperations ()); проливают новый RuntimeException (); // я хочу откатить как дб} я создаю intermediateMethod только для @Transactional аннотации, потому что он не поддерживает @Transactional ({ «firstDbTransactionManager», «secondDbTransactionManager»}). Как открыть обе сделки одним аннотацию? } Общественных недействительный withdrawalOfMonthlyFeeInner (Проект) бросает исключение {firstDbRepository.update (проект); secondDbRepostory.addNewOperationToProjectTable (project.generateOperations ()); проливают новый RuntimeException (); // я хочу откатить как дб} я создаю intermediateMethod только для @Transactional аннотации, потому что он не поддерживает @Transactional ({ «firstDbTransactionManager», «secondDbTransactionManager»}). Как открыть обе сделки одним аннотацию?
Adeptius
1

голосов
0

ответ
168

Просмотры

использовать контекстный путь в JavaScript для SockJs

Я пишу приложение-чат с веб-сокеты Spring загрузочными и топать на переднем конце. Есть ли способ программно получить доступ к корневому контексту моего приложения в JavaScript? мои application.properties: server.contextPath = / chatapp моя функция JS подключения () {сокет = новые SockJS ( '/ chatapp / чат'); stompClient = Stomp.over (розетка); stompClient.connect ({}, функция (кадр) {stompClient.subscribe ( '/ пользователь / очереди / сообщения', функция (сообщение) {ShowMessage (JSON.parse (message.body));});}} Теперь, если я чтобы изменить контекст приложения в свойствах у меня будет помнить, чтобы изменить его в нескольких местах в проекте, который я пытаюсь избежать. Поэтому вместо того, чтобы жестко прописывать «chatapp» в JS Я хочу, чтобы иметь возможность извлечь его программно.
Artyom Emelyanenko
1

голосов
0

ответ
605

Просмотры

SpringBoot не находит свою зависимость в BOOT-INF / Lib / папки

buildArchiveDescriptor (StandardArchiveDescriptorFactory.java:48) ~ [! MyProject-0.1.jar /: на] в org.hibernate.jpa.boot.scan.spi.AbstractScannerImpl.buildArchiveDescriptor (AbstractScannerImpl.java:95) ~ [MyProject-0.1.jar ! /: на] в org.hibernate.jpa.boot.scan.spi.AbstractScannerImpl.scan (AbstractScannerImpl.java:70) ~ [MyProject-0.1.jar /: на] ... 20 общие рамки опущены. Но я могу видеть мою зависимость (другая баночка проект) внутри `BOOT-INF / Библиотека /` Следуйте кусок моей pom.xml: ... digitalizacao-отправителе ... org.springframework.boot весны-загрузка-стартер-ActiveMQ 1.5.9.RELEASE com.my.organization MyProject на] в org.hibernate.jpa.boot.scan.spi.AbstractScannerImpl.scan (AbstractScannerImpl.java:70) ~ [MyProject-0.1.jar /: на] ... 20 общие рамки опущены. Но я могу видеть мою зависимость (другая баночка проект) внутри `BOOT-INF / Библиотека /` Следуйте кусок моей pom.xml: ... digitalizacao-отправителе ... org.springframework.boot весны-загрузка-стартер-ActiveMQ 1.5.9.RELEASE com.my.organization MyProject на] в org.hibernate.jpa.boot.scan.spi.AbstractScannerImpl.scan (AbstractScannerImpl.java:70) ~ [MyProject-0.1.jar /: на] ... 20 общие рамки опущены. Но я могу видеть мою зависимость (другая баночка проект) внутри `BOOT-INF / Библиотека /` Следуйте кусок моей pom.xml: ... digitalizacao-отправителе ... org.springframework.boot весны-загрузка-стартер-ActiveMQ 1.5.9.RELEASE com.my.organization MyProject
felipealves.gnu
1

голосов
0

ответ
826

Просмотры

Ошибка Spring загрузки / Oracle / Java: Не удалось получить результаты JDBC Connection в Тайм-аут соединения

Система Я работаю с имеет следующее (я использую Spring бутсу) Я получаю сообщение об ошибке при запуске приложения, используя следующие: Вызванные: org.springframework.jdbc.CannotGetJdbcConnectionException: `Не удалось получить JDBC Connection`; вложенное исключение java.sql.SQLRecoverableException: IO Error: `Сетевой адаптер не может установить connection` на org.springframework.jdbc.datasource.DataSourceUtils.getConnection (DataSourceUtils.java:80) ~ [весна-4.3.9 JDBC .RELEASE.jar: 4.3.9.RELEASE] на org.springframework.jdbc.support.JdbcUtils.extractDatabaseMetaData (JdbcUtils.java:326) ~ [весенне-JDBC-4.3.9.RELEASE.jar: 4.3.9.RELEASE] ... 61 общие рамки опущены из-за этого, я получаю java.net.ConnectException: Тайм-аут соединения: подключение Ниже другая информация. Почему я получаю эту ошибку? Код видит соединение. URL - но - он говорит, что он не может работать с ним. Насколько я могу сказать, что синтаксис является правильным. Как я могу это исправить? ТИА pom.xml файл XSI: SchemaLocation = "http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 ccinrest BackEndRestFunctionality 0.0.1-SNAPSHOT баночка SpringBootErrorHandlingDemoy http://maven.apache.org UTF-8 org.springframework.boot весна-загрузка-стартер-родитель 1.5.4.RELEASE maven.oracle.com истинную ложную https: // Maven .oracle.com по умолчанию maven.oracle.com https://maven.oracle.com орг. шоу-SQL = истина # Hibernate DDL авто (создание, создание дропа, обновление): с «созданием дропа» базы данных # схема будет автоматически создается заново для каждого запуска приложение spring.jpa.hibernate.ddl-авто = создать -drop # стратегия Нейминг spring.jpa.hibernate.naming.implicit-стратегия = org.hibernate.boot.model.naming.ImplicitNamingStrategyLegacyHbmImpl spring.jpa.hibernate.naming.physical-стратегия = org.springframework.boot.orm.jpa. hibernate.SpringPhysicalNamingStrategy # Позволяет Hibernate генерировать SQL, оптимизированный для конкретной СУБД spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.Oracle10gDialect #hibernate конфигурации spring.jpa.database-платформа = org.hibernate.dialect.Oracle10gDialect ошибок Журнал . ____ _ __ _ _ / \\ / ___'_ __ _ _ (_) _ __ __ _ \ \ \ \ (() \ ___ | «_ | '_ | |' _ \ / _` | \ \ \ \ \\ / ___) | | _) | | | | | || (_ | |)))) | ____ | .__ | _ | | _ | _ | | _ \ __, | / / / / ========= | _ | ============== | ___ / = / _ / _ / _ / :: Spring Загрузочный :: (v1. 5.4.RELEASE) 2018-01-24 19: 25: 06,507 ИНФО 12076 --- [Основной] ccinrest.App: Запуск приложения на рабочем столе-8EFRPQF с PID 12076 (C: \ РАБОТА \ Test \ SpringBootErrorHandlingDemo \ \ целевые классы, созданные dgmufasa в C: \ РАБОТА \ Test \ SpringBootErrorHandlingDemo) 2018-01-24 19: 25: 06,511 ИНФО 12076 --- [Основные] ccinrest.App: нет активный набор профиля, отступая к профилям по умолчанию: по умолчанию не 2018-01-24 19: 25: 06,629 ИНФО 12076 --- [Основной] ationConfigEmbeddedWebApplicationContext: Освежающие org.springframework.boot[email protected]64d7f7e0: запуск дата [ср 24 января 19:25:06 CST 2018]; корень контекста иерархии 2018-01-24 19: 25: 09,949 ИНФО 12076 --- [Основной] sbcetTomcatEmbeddedServletContainer: Tomcat инициализирован с портом (ы): 8080 (HTTP) 2018-01-24 19: 25: 09,968 INFO 12076 - - [главная] o.apache.catalina.core.StandardService: Запуск службы [Tomcat] 2018-01-24 19: 25: 09,973 INFO 12076 --- [главная] org.apache.catalina.core.StandardEngine: Запуск двигателя Servlet : Apache Tomcat / 8.5.15 2018-01-24 19: 25: 10,183 ИНФО 12076 --- [ост-стартстопный-1] oaccC [Tomcat] [локальный] [/]:.. Инициализация Спринг встроенных WebApplicationContext 2018-01- 24 19: 25: 10,183 ИНФО 12076 --- [ост-стартстопный-1] osweb.context.ContextLoader: Корень WebApplicationContext: инициализация завершена в 3559 мс 2018-01-24 19:25:10. ServletRegistrationBean: Отображение сервлет: 'DispatcherServlet' на [/] 2018-01-24 19: 25: 33,725 ОШИБКИ 12076 --- [главный] oatomcat.jdbc.pool.ConnectionPool: Невозможно создать начальные соединения пула. java.sql.SQLRecoverableException: IO Error: Сетевой адаптер не может установить соединение на oracle.jdbc.driver.T4CConnection.logon (T4CConnection.java:774) ~ [ojdbc8-12.2.0.1.jar: 12.2.0.1.0] на oracle.jdbc.driver.PhysicalConnection.connect (PhysicalConnection.java:688) ~ [ojdbc8-12.2.0.1.jar: 12.2.0.1.0] на oracle.jdbc.driver.T4CDriverExtension.getConnection (T4CDriverExtension.java:39) ~ [ojdbc8-12.2.0.1.jar: 12.2.0.1.0] на oracle.jdbc.driver.OracleDriver.connect (OracleDriver.java:691) ~ [ojdbc8-12.2.0.1.jar: 12.2.0.1.0] на org.apache.tomcat.jdbc.pool.PooledConnection.connectUsingDriver (PooledConnection.
Casey Harrils
1

голосов
0

ответ
291

Просмотры

Весна загрузки файла Скачать с Range заголовка (частичная загрузка)

Я разрабатываю службы Spring загрузки Rest для загрузки файлов (либо полный файл или в диапазонах) Запрос от контроллера передается на сервисный уровень, где я сделать обработку файла и должны вернуть его. Вариант 1: Я мог читать FileInputStream побайтно и записать его непосредственно в выходной поток. Но в этом варианте, я должен буду передать объект ответа на сервисный слой, который я не хочу сделать (как уровень услуг должны быть отсоединен от веба-компонентов). Вариант 2: Передача всего массива байт из сервисного слоя в контроллер также может не быть хорошим вариантом, так как я имею дело с очень большими файлами. Вариант 3: В случае возврата всего файла, я мог бы передать FileInputStream к ResponseEntity и весной может позаботиться о потоковом но я также необходимо рассмотреть случай, когда я возвращать диапазон байтов из файла в зависимости от заголовка Range. Любые входы или направление по отношению к этому будет очень полезно. Дайте мне знать, если требуется дополнительная информация.
samo
1

голосов
1

ответ
1.2k

Просмотры

Как динамически изменять схему в пружинном загрузочных лицах?

Я использую загрузку пружинной (1.5.9 версии) и MySQL, зимуют .в MySQL я, имеющие две или более другую схему, Table1 присутствующие в SCHEMA1 и Table2 настоящего времени в SCHEMA2, в моей весеннем application.properties загрузки я подсоединенная базы данных MySQL SCHEMA1 , мне нужно хранить значения в schema2.table2 в том же порту (3356) .Как динамически изменять схему в Entity. application.properties spring.datasource.url = JDBC: MySQL: // локальный: 3356 / SCHEMA1 spring.datasource.username = корень spring.datasource.password = 12345 spring.datasource.driver класса имя = com.mysql.jdbc. Водитель Entity: @Entity @Table (имя = "table2", схема = "SCHEMA2") класс Компания реализует общественный Сериализуемый {частный статический окончательный длинный serialVersionUID = 1L; @Id @GeneratedValue (стратегия = GenerationType.IDENTITY) @column (имя = "CompanyID" ) Частное Integer идентификатор; @Column (имя = "CompanyName") частная строка НазваниеКомпании; } Ошибка: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Таблица 'schema1.table2' не существует в sun.reflect.NativeConstructorAccessorImpl.newInstance0 (нативный метод) ~ [па: 1.8.0_151] на sun.reflect. NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:62) ~ [па: 1.8.0_151] на sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45) ~ [па: 1.8.0_151] на java.lang.reflect.Constructor. newInstance (Constructor.java:423) ~ [па: 1.8.0_151] на com.mysql.jdbc.Util.handleNewInstance (Util.java:425) ~ [MySQL-разъем-Java-5.1.44.jar: 5.1.44 ] в com.mysql.jdbc.Util.getInstance (Util.java:408) ~ [MySQL-разъем-Java-5.1.44.jar: 5.1.44] на com.mysql.
Ajith Deivam
1

голосов
0

ответ
189

Просмотры

Override ModelAttribute with Path Variable in Spring Framework

Я занимаюсь разработкой API с использованием Spring Framework и столкнулся с проблемой, которая может быть решена путем простого добавления необходимой логики в любое место у меня есть, но я думаю, что может быть элегантным решение, чтобы исправить это. У меня есть следующий метод в моем контроллере: @GetMapping ( "/ пользователь / {USERID} / разрешение") публичный список List (@PathVariable длинных USERID, критерии @ModelAttribute @Valid PermissionCriteria) {вернуться permissionService.list (критерии); } Дело в том, что в DTO У меня есть поле под названием идентификатор пользователя. Это сделано, чтобы не иметь много аргументов, идущие к методу службы. Но я хочу, чтобы это идентификатор пользователя должен быть установлен именно с пути, так как я использую URL, который указывает, что мы добавляем разрешение именно к конкретному ресурсу пользователя. Это' ев выполнимо путем добавления строки, которая использует метод установки в критериях и устанавливает значение USERID. Однако, теперь я никогда не должен забывать, чтобы добавить эту строку каждый раз, когда у меня есть такой случай. Вот почему я решил перенести его в InitBinder: @InitBinder (PERMISSIONS_CRITERIA_NAME) общественного недействительный permissionsCriteriaInitBinder (WebDataBinder связующий) {Критерий PermissionsCriteria = (PermissionsCriteria) binder.getTarget (); Optional.ofNullable (requestHelper.getUserId) () .map (Long :: parseLong) .ifPresent (критерии :: setUserId); } Это работает отлично. Идентификатор пользователя устанавливается с пути. Однако, если я указываю параметр запроса и переменную пути в то же время, даже если идентификатор пользователя устанавливается с пути в инициализации связующего, он переопределяется потом, прежде чем он идет к методу контроллера. Таким образом, это один не решает все вопросы. То, что я хочу найти, есть где-нибудь, где логика может быть поставлен, чтобы применить и к инициализации связующего (мне это нужно для проверки) и способ управления. Может быть, есть особый тип крючка или перехватчика или, по крайней мере, что-то реализовать, чтобы удовлетворить эти условия?
dvelopp
1

голосов
0

ответ
629

Просмотры

Spring облако конфигурации сервера с помощью нескольких хранилищу, но клиент не мог читать

В последнее время я строй конфигурации сервера весны облака для бизнеса компании, конфигурация конфигурации сервера, как ФНЧ: весна: приложение: Имя: облако конфига-сервер: конфигурации: метка: главный сервер: мерзавец: URI: HTTP: //gitlab.ugirls. ком: 9999 / commonconfig.git поиск-путь: дБ, Redis сила-выдвижное: верно по умолчанию метка: мастер репо: project1: картина: project1- * cloneOnStart: истинный URI: http://gitlab.ugirls.com:9999/ project1.git project2: картина: project2- * cloneOnStart: истинный URI: http://gitlab.ugirls.com:9999/project2.git, как мой проект имеет некоторый общий файл конфигурации, так что я положил его commonconfig.git. commonconfig. мерзавец содержит datasource-dev.properties, datasource-prod.properties project1.git содержит приложение-dev.yml, приложение-prod.yml до сих пор, это выглядит нормально, посетите HTTP: // локальный: 8411 / project1-приложения. XML-это нормально {имени: "project1-приложения", профили: [ "DEV"], ярлык: "мастер", версия: "978c1dc67a6bb6672b7e7ae7620f2c5794897a31", состояние: нуль, propertySources: [{имя: «HTTP: //gitlab.ugirls .com: 9999 / project1.git / приложения dev.yml»} ... и посетить HTTP: // локальный: 8411 / DataSource / DEV-прежнему нормально. Но .... мой конфигурационный клиент проекта: bootstrap.yml вроде как течет: пружинный: применение: имя: облако project1-приложения: конфигурации: метка: основной профиль: $ {} spring.profiles.active URI: HTTP: // локальный: 8411 / имя: project1-приложение, или дать мне несколько советов? Спасибо
user1685190

Просмотр дополнительных вопросов