0

голосов
0

ответ
27

Просмотры

Если Dispose вызывается, когда Повторное выбрасывание необработанного исключения?

Предполагается У меня есть класс, как показано ниже: класс DisposableClass общественности: IDisposable) {личное таймер Timer (только для чтения; DisposableClass () {this.timer = новый таймер (ы => CB (ы), с, 1000, 1000); } Init () {попробуйте {// Выполняет инициализацию здесь, что не делаются в CTOR. } Поймать (Exception) {// журнал ошибок. бросить; } Наконец {// Правильно ли это? this.Dispose (); }} Общественного недействительными Dispose () {this.timer .Dispose (?); }} Мой вопрос, является ли, наконец, положение необходимо (или не должно быть вообще) в приведенном выше случае, для любого метода не-конструктора при метании необработанное исключение. Благодарю. EDIT: В ответ, пожалуйста, решить вопросы в зависимости от Init (), которые публично, защищены,
swdon
1

голосов
1

ответ
677

Просмотры

Как активировать состояние на странице загрузки для углового Ui-sref?

Я использую следующую конфигурацию UI-маршрутизатор. Таким образом, когда пользователь нажимает на вкладке, вкладка будет выделена правильно, как и ожидалось. Однако ни одна закладка не будет выделена при первой загрузке страницы и пользователь должен нажать на вкладку для ее состояния, чтобы активизироваться. Я хотел бы домой состояние быть активной вкладки, когда первой загрузке страницы. Как я могу добиться этого? angular.module ( "приложение", [ 'app.home', 'app.page1', 'app.page2', 'app.page3']) .config (функция ($ stateProvider, $ urlRouterProvider) {$ urlRouterProvider.otherwise ( 'дом'); $ stateProvider .state ( 'дом', {URL: '/', просмотров: { 'MainContentPlaceHolder': {templateUrl: '../Home/_Layout.html'}}}) .state (» стр.1' , {URL: '/ стр.1', просмотров: { ' MainContentPlaceHolder ': {templateUrl:' ../Page-1/_Layout.html '}}}) .state ( 'стр.2', {URL: '/ стр.2', просмотров: { 'MainContentPlaceHolder': {templateUrl:' .. /Page-2/_Layout.html '}}}) .state ( 'page3', {URL: '/ page3', просмотров: { 'MainContentPlaceHolder': {templateUrl:' ../Page-3/_Layout.html» }}}); }) Мой HTML разметка: Главная страница 1 Page 2 Page 3 просмотров: { 'MainContentPlaceHolder': {templateUrl: '../Page-2/_Layout.html'}}}) .state ( 'page3', {URL: '/ page3', просмотров: { 'MainContentPlaceHolder': {templateUrl : '../Page-3/_Layout.html'}}}); }) Мой HTML разметка: Главная страница 1 Page 2 Page 3 просмотров: { 'MainContentPlaceHolder': {templateUrl: '../Page-2/_Layout.html'}}}) .state ( 'page3', {URL: '/ page3', просмотров: { 'MainContentPlaceHolder': {templateUrl : '../Page-3/_Layout.html'}}}); }) Мой HTML разметка: Главная страница 1 Page 2 Page 3 }}}); }) Мой HTML разметка: Главная страница 1 Page 2 Page 3 }}}); }) Мой HTML разметка: Главная страница 1 Page 2 Page 3
swdon
1

голосов
4

ответ
136

Просмотры

Сокращение дублирования кода в Hibernate сессий

Я занимаюсь разработкой REST веб-службы с помощью Джерси и Hibernate с Postgres для внутреннего интерфейса. У меня есть 3 пакетов для моделей, ресурсов и услуг каждый. Для каждого метода в услугах я дублируя код: SessionFactory SessionFactory = HibernateUtil.getSessionFactory (); Сессия сессия = sessionFactory.openSession (); сделка сделка = NULL; попробовать {транзакции = session.beginTransaction (); *** некоторого уникальный ОБЪЕКТ *** = (*** некоторый уникальный ОБЪЕКТ ТИП ***) session.save (*** некоторый уникальный ОБЪЕКТ ***); session.getTransaction () фиксации (). } Задвижка (HibernateException е) {если (сделка! = NULL) {transaction.rollback (); }} {Session.close, наконец, (); } Вернуться *** НЕКОТОРОГО уникального объекта ***; Может кто-то посоветовать, как я могу сделать это без дублирования этого кода. Я' м мышление написания интерфейса для сущностей модели классов. Затем передайте этот интерфейс в коде выше. Не уверен, что это лучший способ сделать это.
swdon
1

голосов
1

ответ
218

Просмотры

VSTO надстройки Outlook ленты не отображается в Outlook 2007

У меня есть надстройки Outlook, разработанные с помощью VSTO Outlook 2010 шаблона, который имеет ленту. XML лента Эта лента показывает и функционирует должным образом в Outlook, 2016. Тем не менее, лента не отображается в Outlook 2007. Это проблема совместимости? Как я могу изменить этот XML для поддержки Outlook 2007, а? Кроме пользовательского интерфейса, функциональность Add-In работает как в Outlook, 2016 и Outlook 2007. Я использую Visual Studio 2015 для разработки этого.
swdon
1

голосов
1

ответ
125

Просмотры

Используйте GROUP_CONCAT () для создания многоугольников в MySQL

У меня есть таблица, которая имеет столбцы зоны (название зоны, которая является строкой), долгота (десятичной), широта (десятичной), логический порядок (целое число). logical_order указывает порядок, в котором координаты могут быть объединены, чтобы создать полигон. Например, каждая зона будет иметь несколько строк в этой таблице с различной долготой, широтой. Для каждой строки зоны, то logical_order начнется в 1 (для стартовой точки) и увеличивается на единицу каждый ряд. Например, если зона имеет 3 балла, logical_order будет работать от 1 до 3. Координаты в 3 не являются такими же, как на 1. Другими словами, координаты не закрывать полигон. Я пытаюсь создать многоугольник группировки координат каждой зоны и с использованием пространственного пакета, как показано ниже: Я пробовал ниже запрос: SELECT t0.zone, ST_GeometryFromText (CONCAT ( «'Полигон ((», GROUP_CONCAT (t0.coordinate ORDER BY t0 , logical_order СЕПАРАТОР», '),«))' ")) FROM ((SELECT зоны, CONCAT (долгота, '', широта) в виде координат, logical_order из зон) UNION ALL (выбор зоны, CONCAT (долгота, '', широта ) AS координаты, 1000 AS logical_order из зон WHERE logical_order = 1)) t0 GROUP BY t0.zone Однако это дает мне сообщение об ошибке: код ошибки: 3037. недействительные данные ГИС, предоставляемые функционировать st_geometryfromtext. Как я могу исправить эту ошибку? Могу ли я приближаюсь правильный путь? EDIT: Если я стараюсь без ST_GeometryFromText () во втором запросе, я получаю строку как: ПОЛИГОН (77,5068350000 -11.4907909800,179.7363280000 -11.4907909800,179.7363280000 -60.0000000000,77.5068350000 -60.0000000000,77.5068350000 -11.4907909800) После добавления два скобки, как показано ниже еще дают ту же ошибку: многоугольник ((77.5068350000 -11.4907909800, 179,7363280000 -11.4907909800,179.7363280000 -60.0000000000,77.5068350000 -60.0000000000,77.5068350000 -11,4907909800)) EDIT 2: Я также проверить вручную по одному для каждой зоны для закрытия полигона, который является хорошо. Я увеличил лимит по количеству символов GROUP_CONCAT () тоже. Но ошибка все еще сохраняется. EDIT 3: SQL скрипка с данными выборки: http://www.sqlfiddle.com/#!9/5094e5/5
swdon
1

голосов
1

ответ
166

Просмотры

ClassCastException с Hibernate ManyToMany Регистрация запроса

У меня есть две сущностей, вознаграждение и пользователь, которые связаны manytomany, как показано ниже: общественный класс Reward {@Id @column (имя = «reward_id») частный длинный rewardId; @ManyToMany (mappedBy = "любимый") @LazyCollection (LazyCollectionOption.FALSE) частное favouriteUsers сбора; } И Пользователь: класс Пользователь общественности {@Id @GeneratedValue (стратегия = GenerationType.SEQUENCE) @column (имя = "user_id") частный длинный идентификатор пользователя; @ManyToMany @JoinTable (имя = "ФАВОРИТ", joinColumns = @ JoinColumn (имя = "user_id"), inverseJoinColumns = @ JoinColumn (имя = "favourite_id")) @LazyCollection (LazyCollectionOption.FALSE) частная коллекция любимая = новый ArrayList () ; } I» м пытается получить запись из таблицы ЛЮБИМОЙ для конкретного user_id и reward_id, используя приведенный ниже запрос: @NamedQuery (имя = «Favourite.byUserAndReward», запрос = "от Reward г присоединиться к r.favouriteUsers у, где u.userId = и г .rewardId = ") проблема заключается в том, когда я запускаю этот запрос и приравнять результат запроса к типу Reward, я получаю следующее исключение: java.lang.ClassCastException: [Ljava.lang.Object; не может быть приведен к com.xxxxxxx.model.Reward на com.xxxxxxx.sevice.RewardService.addFavourite (RewardService.java:26) при com.xxxxxxx.resources.RewardResource.addFavourite (RewardResource.java:36) при sun.reflect. NativeMethodAccessorImpl.invoke0 (Native Method) в sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62) в sun.reflect.DelegatingMethodAccessorImpl. выберите favouriteu0_.favourite_id в favourit2_3_0_, favouriteu0_.user_id в user_id1_3_0_, user1_.user_id в user_id1_2_1_ из ФАВОРИТ favouriteu0_ внутреннее соединение USER user1_ на favouriteu0_.user_id = user1_.user_id где favouriteu0_.favourite_id =? Я не могу понять ошибку. Может кто-то пожалуйста, помогите? EDIT: Часть где я выполнения запроса является: общественное вознаграждение addFavourite (длинный идентификатор пользователя, Вознаградите favouriteReward) {Object rewardObject = новый ObjectImpl (); длинные favouriteId = favouriteReward.getRewardId (); // Проверяем, если перед тем Добавлен в избранное. // Ниже строка, которая бросает исключение. Вознаграждение checkReward = rewardObject.getObjectByNamedQueryLongLong ( "Favourite.byUserAndReward", USERID, favouriteId), если (checkReward! = NULL) {вернуться favouriteReward; }} favourite_id в favourit2_3_0_, favouriteu0_.user_id в user_id1_3_0_, user1_.user_id в user_id1_2_1_ из ФАВОРИТ favouriteu0_ внутреннее соединение USER user1_ на favouriteu0_.user_id = user1_.user_id где favouriteu0_.favourite_id =? Я не могу понять ошибку. Может кто-то пожалуйста, помогите? EDIT: Часть где я выполнения запроса является: общественное вознаграждение addFavourite (длинный идентификатор пользователя, Вознаградите favouriteReward) {Object rewardObject = новый ObjectImpl (); длинные favouriteId = favouriteReward.getRewardId (); // Проверяем, если перед тем Добавлен в избранное. // Ниже строка, которая бросает исключение. Вознаграждение checkReward = rewardObject.getObjectByNamedQueryLongLong ( "Favourite.byUserAndReward", USERID, favouriteId), если (checkReward! = NULL) {вернуться favouriteReward; }} favourite_id в favourit2_3_0_, favouriteu0_.user_id в user_id1_3_0_, user1_.user_id в user_id1_2_1_ из ФАВОРИТ favouriteu0_ внутреннее соединение USER user1_ на favouriteu0_.user_id = user1_.user_id где favouriteu0_.favourite_id =? Я не могу понять ошибку. Может кто-то пожалуйста, помогите? EDIT: Часть где я выполнения запроса является: общественное вознаграждение addFavourite (длинный идентификатор пользователя, Вознаградите favouriteReward) {Object rewardObject = новый ObjectImpl (); длинные favouriteId = favouriteReward.getRewardId (); // Проверяем, если перед тем Добавлен в избранное. // Ниже строка, которая бросает исключение. Вознаграждение checkReward = rewardObject.getObjectByNamedQueryLongLong ( "Favourite.byUserAndReward", USERID, favouriteId), если (checkReward! = NULL) {вернуться favouriteReward; }} user_id в user_id1_3_0_, user1_.user_id как user_id1_2_1_ из ФАВОРИТ favouriteu0_ внутреннее соединение USER user1_ на favouriteu0_.user_id = user1_.user_id где favouriteu0_.favourite_id =? Я не могу понять ошибку. Может кто-то пожалуйста, помогите? EDIT: Часть где я выполнения запроса является: общественное вознаграждение addFavourite (длинный идентификатор пользователя, Вознаградите favouriteReward) {Object rewardObject = новый ObjectImpl (); длинные favouriteId = favouriteReward.getRewardId (); // Проверяем, если перед тем Добавлен в избранное. // Ниже строка, которая бросает исключение. Вознаграждение checkReward = rewardObject.getObjectByNamedQueryLongLong ( "Favourite.byUserAndReward", USERID, favouriteId), если (checkReward! = NULL) {вернуться favouriteReward; }} user_id в user_id1_3_0_, user1_.user_id как user_id1_2_1_ из ФАВОРИТ favouriteu0_ внутреннее соединение USER user1_ на favouriteu0_.user_id = user1_.user_id где favouriteu0_.favourite_id =? Я не могу понять ошибку. Может кто-то пожалуйста, помогите? EDIT: Часть где я выполнения запроса является: общественное вознаграждение addFavourite (длинный идентификатор пользователя, Вознаградите favouriteReward) {Object rewardObject = новый ObjectImpl (); длинные favouriteId = favouriteReward.getRewardId (); // Проверяем, если перед тем Добавлен в избранное. // Ниже строка, которая бросает исключение. Вознаграждение checkReward = rewardObject.getObjectByNamedQueryLongLong ( "Favourite.byUserAndReward", USERID, favouriteId), если (checkReward! = NULL) {вернуться favouriteReward; }} user_id в user_id1_2_1_ из ФАВОРИТ favouriteu0_ внутреннее соединение USER user1_ на favouriteu0_.user_id = user1_.user_id где favouriteu0_.favourite_id =? Я не могу понять ошибку. Может кто-то пожалуйста, помогите? EDIT: Часть где я выполнения запроса является: общественное вознаграждение addFavourite (длинный идентификатор пользователя, Вознаградите favouriteReward) {Object rewardObject = новый ObjectImpl (); длинные favouriteId = favouriteReward.getRewardId (); // Проверяем, если перед тем Добавлен в избранное. // Ниже строка, которая бросает исключение. Вознаграждение checkReward = rewardObject.getObjectByNamedQueryLongLong ( "Favourite.byUserAndReward", USERID, favouriteId), если (checkReward! = NULL) {вернуться favouriteReward; }} user_id в user_id1_2_1_ из ФАВОРИТ favouriteu0_ внутреннее соединение USER user1_ на favouriteu0_.user_id = user1_.user_id где favouriteu0_.favourite_id =? Я не могу понять ошибку. Может кто-то пожалуйста, помогите? EDIT: Часть где я выполнения запроса является: общественное вознаграждение addFavourite (длинный идентификатор пользователя, Вознаградите favouriteReward) {Object rewardObject = новый ObjectImpl (); длинные favouriteId = favouriteReward.getRewardId (); // Проверяем, если перед тем Добавлен в избранное. // Ниже строка, которая бросает исключение. Вознаграждение checkReward = rewardObject.getObjectByNamedQueryLongLong ( "Favourite.byUserAndReward", USERID, favouriteId), если (checkReward! = NULL) {вернуться favouriteReward; }} т выяснить ошибку. Может кто-то пожалуйста, помогите? EDIT: Часть где я выполнения запроса является: общественное вознаграждение addFavourite (длинный идентификатор пользователя, Вознаградите favouriteReward) {Object rewardObject = новый ObjectImpl (); длинные favouriteId = favouriteReward.getRewardId (); // Проверяем, если перед тем Добавлен в избранное. // Ниже строка, которая бросает исключение. Вознаграждение checkReward = rewardObject.getObjectByNamedQueryLongLong ( "Favourite.byUserAndReward", USERID, favouriteId), если (checkReward! = NULL) {вернуться favouriteReward; }} т выяснить ошибку. Может кто-то пожалуйста, помогите? EDIT: Часть где я выполнения запроса является: общественное вознаграждение addFavourite (длинный идентификатор пользователя, Вознаградите favouriteReward) {Object rewardObject = новый ObjectImpl (); длинные favouriteId = favouriteReward.getRewardId (); // Проверяем, если перед тем Добавлен в избранное. // Ниже строка, которая бросает исключение. Вознаграждение checkReward = rewardObject.getObjectByNamedQueryLongLong ( "Favourite.byUserAndReward", USERID, favouriteId), если (checkReward! = NULL) {вернуться favouriteReward; }} // Проверяем, если перед тем Добавлен в избранное. // Ниже строка, которая бросает исключение. Вознаграждение checkReward = rewardObject.getObjectByNamedQueryLongLong ( "Favourite.byUserAndReward", USERID, favouriteId), если (checkReward! = NULL) {вернуться favouriteReward; }} // Проверяем, если перед тем Добавлен в избранное. // Ниже строка, которая бросает исключение. Вознаграждение checkReward = rewardObject.getObjectByNamedQueryLongLong ( "Favourite.byUserAndReward", USERID, favouriteId), если (checkReward! = NULL) {вернуться favouriteReward; }}
swdon
1

голосов
4

ответ
1.1k

Просмотры

Spring Загрузочный показывает строку вместо HTML-файла из приложения Angular2 Single Page

Я пытаюсь сопоставить все запросы GET на неотображенный адрес сайта, чтобы показать файл index.html. Итак, я написал следующую @RestController: @RequestMapping (метод = RequestMethod.GET) публичная Строка redirectToIndex () {возвращение "index.html"; } Мой index.html в ресурсы / статический / index.html. Я также попытался следующий контроллер: @RequestMapping (метод = RequestMethod.GET) публичная Строка redirectToIndex () {возвращение "/static/index.html"; } Однако, в обоих случаях браузер буквально показывает струнные index.html и /static/index.html соответственно вместо того, чтобы показывать файл HTML. Я пробовал много разных другие подходы к подобным вопросам здесь, но не могу получить его, чтобы решить ... Пожалуйста, помогите. EDIT: Мой заливка @RequestController класс: @RestController общественного класса FeedbackController {@Autowired частное FeedbackService feedbackService; @RequestMapping (метод = RequestMethod.POST, значение = "/ обратная связь") обратная связь с общественностью addFeedback (@RequestBody Обратной связи Обратной связи) {вернуться feedbackService.addFeedback (обратная связь); } @RequestMapping (метод = RequestMethod.GET) публичная Строка redirectToIndex () {возвращение "index.html"; }} Мой pom.xml: org.springframework.boot весна-загрузка-стартер-родитель 1.5.8.RELEASE UTF-8 UTF-8 1,8 org.springframework.boot org.springframework.boot весна-загрузка-стартер-данные JPA весна-загрузки стартера веб org.springframework.
swdon
1

голосов
2

ответ
619

Просмотры

Как экспортировать несколько файлов заголовков в виде одного файла заголовка в C ++?

Я занимаюсь разработкой библиотеки DLL с помощью Visual Studio. В настоящее время, у меня есть один заголовочный файл: MyProject.h: #pragma раз #ifdef MYLIBRARY_EXPORTS #define MYLIBRARY_API __declspec (dllexport) #else #define MYLIBRARY_API __declspec (DllImport) #endif #include #include ехЬегп "C" класса MYLIBRARY_API Class1 {// некоторые вещи здесь ...}; ехЬегп класс "C" MYLIBRARY_API Class2 {// некоторые вещи здесь}; Я буду добавлять еще несколько классов в проект, и я хотел бы добавить отдельные файлы заголовков для каждого класса (пожалуйста, сообщите, если я не должен делать это). Однако, в конце концов, я хочу, чтобы упаковать все это в одном .dll и .lib таким образом, что клиент только должен включать один файл заголовка. То есть, проект клиент имеет #include «MyProject.h» который является по существу набор заголовочных файлов с их implmentation файлов. Возможно ли это и как я могу добиться этого? Благодарю. EDIT: Чтобы быть конкретными, что я хочу сделать, это положить Class1 в Class1.h и Class2 в Class2.h и включает оба в файле один мастер заголовка называется MyLibrary.h так, что клиент только должен сделать #include " MyLibrary.h».
swdon
0

голосов
0

ответ
14

Просмотры

Передача по значению или передачи по ссылке является более эффективной в GoLang?

Скажем, у меня есть-структура, реализующая интерфейс, как показано ниже: интерфейс Iface типа {Method1 () Method2 () method3 ()} типа лицо структуру {prop1 строка prop2 INT} // реализация Iface здесь ... Теперь, если у меня есть метод, который принимает Iface это лучше спроектировать его принять указатель на этот интерфейс значения? Принять указатель: FUNC DummyMethod (е * Iface) {(* е) .Method1 ()} По умолчанию значение: FUNC DummyMethod (F Iface) {f.Method1 ()} Моя первая догадка, так как они являются структурами, вероятно, лучше, чтобы пройти по значению? Или есть правило с учетом размера и характера структуры, когда начать передавая указатель? Кроме того, когда мы добавляем методы в структуры это лучше передать указатель на структуру или это значение?
swdon
3

голосов
1

ответ
35

Просмотры

Как инициализировать вложенную Sorted словарь с Comparer?

Я хочу создать словарь отсортированных словарей которых отсортированные словари преобразующих ключей в порядке убывания. Я пытаюсь как: частный IDictionary myDict только для чтения = новый словарь (); Как установить компаратор, как: Comparer.Create ((х, у) => y.CompareTo (х)) для вложенного словаря?
swdon
4

голосов
1

ответ
45

Просмотры

Инкапсуляция модели в своем классе для Angularjs приложения

У меня есть 2 точки зрения. Одним из них является список студента в таблице, а другой, когда вы нажимаете на студенте, он показывает деталь студента. Я привел ученик к его собственному классу в отдельном student.js файлов. Дело в том, подробности студент не заполнит список в представлении. Я представлю контроллер и представление для деталей студента вместе с классом студентов. Студенческий прототип как завод в student.js: // идея: Вы можете инициализировать студент как новый Student (студент) // где студент является еще новым JSON Student () возвращает студент // атрибуты набор на нуль. app.factory ( 'Студент', [ '$ HTTP', функция ($ HTTP) {функция Student (студент) {если (студент) {this.setStudent (студент);} еще {this.setStudent ({ID: нулевой, имя: нулевой уровень: нулевой, schoolName: нуль, PHONENUMBER: нуль, электронная почта: NULL}); }}; Student.prototype = {setStudent: функция (студент) {angular.extend (это, студент); }, LoadStudent: функция (studentId) {вар сфера = это; $ Http.get ( 'myUrl /' + studentId) .then (функция (ответ) {scope.setStudent (response.data);}); }}; вернуться Студент; }]); Теперь я использую Студенческий прототип выше в studentDetailsCtrl: app.controller ( 'studentDetailsCtrl', [ '$ сферы', '$ stateParams', 'Студент', функция ($ сфера, $ stateParams, студент) {$ scope.student = новый студент (); $ scope.student.loadStudent ($ stateParams.studentId);}]); Здесь loadStudent () принимает идентификатор текущего студента из URL и установить атрибуты студента. Студент Подробности просмотра: Student Подробности Имя: {{student.name}} Что я делаю неправильно? Цените любую помощь!
swdon
2

голосов
1

ответ
30

Просмотры

How to filter IQueryable containing nullable types using expression trees?

У меня есть модель класса MyModel с Nullable свойством: Field1. Я пытаюсь фильтровать запрашиваемый из MyModel, основанные на Field1, используя дерево выражения. Часть я обрабатывать обнуляемым, как показано ниже: вар Memex = Expression.Property (parameterEx, «Поле1»); вар memberEx = Expression.Condition (Expression.Property (Memex, "HasValue"), Expression.Property (Memex, «Значение), ConvertExpressionType (Expression.Constant (нуль), TypeOf (TimeSpan))) Здесь, ConvertExpressionType () преобразует . тип выражения, так что она может быть использована с выражением Условия В отлаживать, полный запрашиваемых выглядит следующим образом: {System.Collections.Generic.List`1 [MyModel] .гд (х => ((IIF (x.Field1 .HasValue, x.Field1.Value, конвертировать (нуль, TimeSpan)) + x.Field2.ToTimeSpan ()) <06: 49: 08,3313919))} Здесь Field2 является вторым полем типа длинного I». м, пытаясь убедиться, что TimeSpan сумму Field1 и Field2 меньше заданного значения. Однако, когда я пытаюсь перечислить Queryable, после того, как около 2 элементов, я получаю NullReferenceException. Если я просто пытаюсь фиктивное значение в дереве выражений, а не нулевой, я могу избежать этого нравится: Var Memex = Expression.Property (parameterEx, «Field1»); вар memberEx = Expression.Condition (Expression.Property (Memex, "HasValue"), Expression.Property (Memex, «Значение), ConvertExpressionType (Expression.Constant (TimeSpan.FromHours (1)), TypeOf (TimeSpan))) Итак, Я думаю, что я делаю что-то неправильно в условном выражении. Как я могу это исправить (или точно выяснить, что вызывает исключение? после того, как около 2 элементов, я получаю NullReferenceException. Если я просто пытаюсь фиктивное значение в дереве выражений, а не нулевой, я могу избежать этого нравится: Var Memex = Expression.Property (parameterEx, «Field1»); вар memberEx = Expression.Condition (Expression.Property (Memex, "HasValue"), Expression.Property (Memex, «Значение), ConvertExpressionType (Expression.Constant (TimeSpan.FromHours (1)), TypeOf (TimeSpan))) Итак, Я думаю, что я делаю что-то неправильно в условном выражении. Как я могу это исправить (или точно выяснить, что вызывает исключение? после того, как около 2 элементов, я получаю NullReferenceException. Если я просто пытаюсь фиктивное значение в дереве выражений, а не нулевой, я могу избежать этого нравится: Var Memex = Expression.Property (parameterEx, «Field1»); вар memberEx = Expression.Condition (Expression.Property (Memex, "HasValue"), Expression.Property (Memex, «Значение), ConvertExpressionType (Expression.Constant (TimeSpan.FromHours (1)), TypeOf (TimeSpan))) Итак, Я думаю, что я делаю что-то неправильно в условном выражении. Как я могу это исправить (или точно выяснить, что вызывает исключение?
swdon
13

голосов
1

ответ
9.6k

Просмотры

org.postgresql.util.PSQLException: ERROR: column user0_.id does not exist - Hibernate

I have a model class that is mapped to a postgres database using hibernate. My model class is: @Entity @Table(name="USER") public class User { @Id @GeneratedValue @Column(name="id") private long id; @Column(name="username", unique=true) private String username; @Column(name="email") private String email; @Column(name="created") private Timestamp created; public User(long id, String username, String email) { this.id = id; this.username = username; this.email = email; } } I try to retrieve the user with username "adam" using the below query: tx = session.beginTransaction(); TypedQuery query = session.createQuery("FROM User u WHERE u.username = :username", User.class).setParameter("username", "adam"); user = query.getSingleResult(); I get an exception that says: org.postgresql.util.PSQLException: ERROR: column user0_.id does not exist My database from bash shell looks like: How does hibernate map class attributes to table columns? Does it match based on the @Column(name="username") only or does it also try to match based on datatypes and constraints such as unique/auto-increment?
swdon
2

голосов
1

ответ
132

Просмотры

Return null to avoid unknown exceptions from a method in C#

У меня есть следующий метод, который открывает книгу Excel и возвращает его можно использовать в другом методе. частный Excel.Workbook openWorkbook () {// Получить первенствует путь к файлу возвращает путь к файлу книги первенствовать, если он существует, в противном случае возвращает нуль. Список пути файлы = getExcelFilePath (); если (! = NULL путей файлов) {вернуться excel.Workbooks.Open (пути файлов [0]); } Возвращать нуль; } Как вы можете видеть, я возвращаю пустой, чтобы избежать Try-улов для не-exixtent книги, когда я называю это из другого метода. Это плохая практика, чтобы сделать это. Я делаю нечто подобное в следующем методе, который, как предполагается, возвращает список: список частных getSOsToDelete () {// RAWDATA является частной переменной в классе. Если книга не был открыт этот лист устанавливается на нуль в другом методе аналогично openWorkbook () выше. если (RAWDATA! = NULL) {Список ToDeleteSOs = новый список (); для (INT I = rawData.Cells.SpecialCells (Excel.XlCellType.xlCellTypeLastCell, Type.Missing) .Row, я> 1; я--) {если (rawData.Cells [I, 7] .Value2.ToString ()! = "B2B" || rawData.Cells [I, 7] .Value2.ToString ()! = "" || rawData.Cells [я, 8] .Value2.ToString ()! = "TRNS-Инк" || RAWDATA .Cells [я, 8] .Value2.ToString () = "") {строка SONumber = rawData.Cells [я, 3] .Value2.ToString (!); ToDeleteSOs.Add (SONumber); }} Вернуть ToDeleteSOs; } Возвращать нуль; } Если не так, что это лучший способ, чтобы написать такие методы, как это? В части 2 я предполагаю, что я мог бы вернуть пустой список и проверьте длину. Я не уверен, что лучше. Однако, для первого метода, я действительно не уверен, что возвращать, если файл не существует.
swdon
3

голосов
1

ответ
119

Просмотры

Выгрузка и загрузка изображений с Джерси + зимуют RESTful веб-службы

I decided to go store the image as a byte array in the database. I'm getting an error. My entity model (with getters and setters): @Entity @Table(name="USER", schema="test") @XmlRootElement public class User { @Id @GeneratedValue(strategy=GenerationType.SEQUENCE) @Column(name="user_id") private long userId; @Lob @Column(name="profile_photo") private byte[] profilePhoto; public User() { } } Then I have a resource to create a user like below: @Path("/users") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public class UserResource { private UserService userService = new UserService(); @POST @Path("/signup") public Response signUp(User user) { Response response; try { User newUser = userService.addUser(user); response = Response.status(Status.OK) .entity(newUser) .build(); } catch (IllegalArgumentException e) { response = Response.status(Status.BAD_REQUEST) .entity(e.getMessage()) .build(); } return response; } } where the addUser method is coming from the userService below: public User addUser(User newUser) throws IllegalArgumentException { Object user = new ObjectImpl(); User checkUser = user.getObjectByNamedQueryString("User.byEmail", newUser.getUserEmail()); if (checkUser != null) { throw new IllegalArgumentException("User account with this email address already exists."); } byte[] encodedAvatar = newUser.getProfilePhoto(); if (encodedAvatar != null) { byte[] avatar = Base64.getDecoder().decode(encodedAvatar); newUser.setProfilePhoto(avatar); } return user.addObject(User.class, newUser); } During testing, I took a test image, converted into a Base64 string and converted it to hex using this site. However, I get the following exception: javax.ws.rs.WebApplicationException: HTTP 400 Bad Request at org.eclipse.persistence.jaxb.rs.MOXyJsonProvider.readFrom(MOXyJsonProvider.java:708) at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.invokeReadFrom(ReaderInterceptorExecutor.java:256) at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.aroundReadFrom(ReaderInterceptorExecutor.java:235) at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:155) at org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundReadFrom(MappableExceptionWrapperInterceptor.java:74) at org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:155) at org.glassfish.jersey.message.internal.MessageBodyFactory.readFrom(MessageBodyFactory.java:1085) at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:874) at org.glassfish.jersey.server.ContainerRequest.readEntity(ContainerRequest.java:271) at org.glassfish.jersey.server.internal.inject.EntityParamValueFactoryProvider$EntityValueFactory.provide(EntityParamValueFactoryProvider.java:96) at org.glassfish.jersey.server.spi.internal.ParamValueFactoryWithSource.provide(ParamValueFactoryWithSource.java:71) at org.glassfish.jersey.server.spi.internal.ParameterValueHelper.getParameterValues(ParameterValueHelper.java:94) at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$AbstractMethodParamInvoker.getParamValues(JavaResourceMethodDispatcherProvider.java:127) at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160) at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) at org.glassfish.jersey.internal.Errors.process(Errors.java:315) at org.glassfish.jersey.internal.Errors.process(Errors.java:297) at org.glassfish.jersey.internal.Errors.process(Errors.java:267) at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473) at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:198) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:478) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:140) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:80) at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:624) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:342) at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:799) at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66) at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:861) at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1455) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:748) Caused by: javax.xml.bind.UnmarshalException - with linked exception: [Exception [EclipseLink-25004] (Eclipse Persistence Services - 2.6.0.v20150309-bf26070): org.eclipse.persistence.exceptions.XMLMarshalException Exception Description: An error occurred unmarshalling the document Internal Exception: javax.json.stream.JsonParsingException: Unexpected char 53 at (line no=8, column no=29, offset=220), expecting 'a'] at org.eclipse.persistence.jaxb.JAXBUnmarshaller.handleXMLMarshalException(JAXBUnmarshaller.java:1072) at org.eclipse.persistence.jaxb.JAXBUnmarshaller.unmarshal(JAXBUnmarshaller.java:341) at org.eclipse.persistence.jaxb.rs.MOXyJsonProvider.readFrom(MOXyJsonProvider.java:660) ... 53 more Caused by: Exception [EclipseLink-25004] (Eclipse Persistence Services - 2.6.0.v20150309-bf26070): org.eclipse.persistence.exceptions.XMLMarshalException Exception Description: An error occurred unmarshalling the document Internal Exception: javax.json.stream.JsonParsingException: Unexpected char 53 at (line no=8, column no=29, offset=220), expecting 'a' at org.eclipse.persistence.exceptions.XMLMarshalException.unmarshalException(XMLMarshalException.java:120) at org.eclipse.persistence.internal.oxm.record.json.JsonStructureReader.parse(JsonStructureReader.java:147) at org.eclipse.persistence.internal.oxm.record.SAXUnmarshaller.unmarshal(SAXUnmarshaller.java:978) at org.eclipse.persistence.internal.oxm.record.SAXUnmarshaller.unmarshal(SAXUnmarshaller.java:425) at org.eclipse.persistence.internal.oxm.record.SAXUnmarshaller.unmarshal(SAXUnmarshaller.java:375) at org.eclipse.persistence.internal.oxm.record.SAXUnmarshaller.unmarshal(SAXUnmarshaller.java:708) at org.eclipse.persistence.internal.oxm.XMLUnmarshaller.unmarshal(XMLUnmarshaller.java:643) at org.eclipse.persistence.jaxb.JAXBUnmarshaller.unmarshal(JAXBUnmarshaller.java:339) ... 54 more Caused by: javax.json.stream.JsonParsingException: Unexpected char 53 at (line no=8, column no=29, offset=220), expecting 'a' at org.glassfish.json.JsonTokenizer.expectedChar(JsonTokenizer.java:538) at org.glassfish.json.JsonTokenizer.readFalse(JsonTokenizer.java:317) at org.glassfish.json.JsonTokenizer.nextToken(JsonTokenizer.java:390) at org.glassfish.json.JsonParserImpl$ObjectContext.getNextEvent(JsonParserImpl.java:255) at org.glassfish.json.JsonParserImpl$StateIterator.next(JsonParserImpl.java:172) at org.glassfish.json.JsonParserImpl.next(JsonParserImpl.java:149) at org.glassfish.json.JsonReaderImpl.readObject(JsonReaderImpl.java:177) at org.glassfish.json.JsonReaderImpl.read(JsonReaderImpl.java:88) at org.eclipse.persistence.internal.oxm.record.json.JsonStructureReader.parse(JsonStructureReader.java:139) ... 60 more My actual request body in POSTMAN is: { "userEmail": "[email protected]", "profilePhoto": 6956424f5277304b47676f414141414e5355684555674141414438414141424843415941414143774c70397a414141414247644254554541414c4750432f7868425141414143426a53464a4e414142364a6741416749514141506f41414143413641414164544141414f7067414141366d41414146334363756c4538414141414358424957584d4141426353414141584567466e6e394a534141414257576c555748525954557736593239744c6d466b62324a6c4c6e687463414141414141415048673665473177625756305953423462577875637a703450534a685a4739695a547075637a70745a5852684c7949676544703462584230617a30695745315149454e76636d55674e5334304c6a416950676f6749434138636d526d4f6c4a455269423462577875637a70795a475939496d6830644841364c79393364336375647a4d7562334a6e4c7a45354f546b764d4449764d6a4974636d526d4c584e35626e52686543317563794d6950676f674943416749434138636d526d4f6b526c63324e79615842306157397549484a6b5a6a7068596d39316444306949676f674943416749434167494341674943423462577875637a703061575a6d50534a6f644852774f693876626e4d7559575276596d5575593239744c3352705a6d59764d5334774c79492b4369416749434167494341674944783061575a6d4f6b3979615756756447463061573975506a45384c3352705a6d593654334a705a573530595852706232342b436941674943416749447776636d526d4f6b526c63324e79615842306157397550676f67494341384c334a6b5a6a70535245592b436a777665447034625842745a5852685067704d7769645a4141414f6f456c4551565234416531624333425531526b2b3539793732553143586954456950495151314269676d4542697855626b714154692b3130527033527474714f7475723461456348613532784d50614a723961326a6f3556327247324f744b684b7656425343434b735a577755524b4341704579434d676a4a49534637504f65302b2b2f6d3332773262323765516f6466746a6463382f397a7a6e2f392f2f2f2b63392f7a72336862417a4a3658546170437a4f442f42416b574371534846574b4251766b4677564d43584b4f466454474f4d4f785a53484b6257504b6261546364484442657452686a7a43644837496e3546315a45664c472b3678454a4f505671644f5a335652514f6d6c6a504e4c4746666c4144554c594b5979706f6f7852693675375a787a3341344e4363433452615054462b724d2f775033464f34715354645034744f4e526e74777077506c7a564c78316737583554735a57324579454e4e774b5454614d467058566c35567a48565a7059525942456b584173527364464d696847623246674a6e6f735074304f387768686c51566c68703646564b44796f376f4c4d334a56502f374841316b6c4b4752656d44762f353672574a333732775972685a6d57674a45383244465967346644514d64436369685345396a6b67644a5a58676853774e58374f6d747276554e512b6d4465464f41587945756e6439534b5a58364a6e69584d7355726852415a347733574368546b4d54304c767257574b574e46753274446d78562f374c32516a386257784a51584c436959364a66654433544e427542734d6c78624d363037416a654f36583555696d467677335362705a693471586a79444f5077675a762f7a56687a79726c6d61586d6131386f6d7477764f43384f4444456669554a436a655575744c59664566666956476643494e36583878425168476f656d684a54795a5a2b6a2f2f59644c53325771345165615a6d6749444d4e7a6f4e3861434b514150545052476f474b415066335544306856527350336f3771426a76786d2b6634747a4c45625577744531784e514774696c412b4435384c384a6b4749486e554430582b644a51665570724234415533326e315a2b65586c31546430646a61665146384a79524b386b676230714b63796c516e55444879684a656f6f674778546b6d2b42446c784338453930476467335938616b337457725678734a70596972724b3675316f2b3439636d77595a5651374270302b3355414f6939644a5568704b7142653262566e734354656b6d785a74415232736650716332334b36415336676e67586a4c67597263644b37634431656c6979775162514c7465364c2b4c776a4f69797171702b6b68544237364b542b376751357847346449695758594d5a743365304e6a3658694e3853664658566b736d47554a3259702f6c68384b466c426c64534859426c31384c43723971342f5438753139722b52414f4d5a6c3235733236717a766a76754f44667772784f3258566f79716944686768576462593248347876594f6e3268684551544952596f4847794d49576a4c5579794631534172326c76627a6763332b4659586e65364776646953747a51343961656756567653365541696748674b34483562345663763479587a644c796c38792f616f7151736776577a6744795a6f442b66644233344d334f7a6b352f6645666a65563161576d2f507a67753841325456795067736877374649726d747638383272367672625638737336586c695247682b4858476a5658747255325551566d50464e767a474a594a52506e383267633071545a68474c76565542516b735742635a4d2b524634467661797976706555524a654872365738676a746158356d595a5771452f494973526b6f6f7754516f5137536467716a697769304d714a6957574d772b4563516556374e454550787a5174494e4650524f4f634a6372454374594f75584b7558574e58424f317161785067512b7038433374577870666a4f303368655754413363764b70334564445a624d6a45582f6a4548323955793557586e65356d63694147793759497a7a567a7661546a6f3043524b4b4255455955785447677441473370513966586c7566663131637a6342684f31434d4e3464304c7a5a3532774371332f317352564535525a6d356f524956757036664764705141665a542f676e4a79566e5a4e5671626859444c6d7159646b357748654f413138304f44495a784258634d594d6959333543474b485963715153716d4649486c55426c465367633134426a376a524b3454507662697331533355533462503932722b2b3374376f79314f4c5347636461576a493271465a526a4c39616c6b435637566c3972372b766d565746706f59314d483979334c3144676e584147414a4d443978764444414b6b45335343514b5051584567774b7364734575774a6175554a6c324a636471356e35654664663767767a456b774c6f61524877594f475332462f544e692b743939596f47753877614878757a544f5a6f474a45316776304250775a41514170714f6a44664a447a6d7778483771477335445645784a313630502f486779416a657546384b786e5a7555665833756f726d78476767625a3643347477725a33554a707261586d685a646a4972564a5a4e777753546d473676512f6d7844613448774d6542786761314974664d6a4470495276582b5a41354e77734e7959746f69695479482f4b75414f59532b4b3557426d7338566c4e36586636477273695746587545715a6a7a615948484d4166694753334241776c48494574495a4d454d6d44414177594e4b64514d77646e2b7144657a746875533768464266634a7539313332387a334f2b765454414a6a57723764764c74646e355158755046737a6e477076716c5251733256583456474d3654664443326842794550576a486835775155434a4e5642414c5254776d636e455764556735675156357047593544766a62316d446c306f774d7573416b627669494d36636e3843387779746c41794c4a4f33345661437475336a4d6f6651793359327a66514c47545969496c534c54562f427966466e7a2b3048336c7a4973526a752f46504c384e51324142474b77436d6d727767476b6e4450367363724a7269723356744c356662674a4449546d5a3374687231344e493030386c612f41615969546369764454306f57353241644c2f3073712b5a496e4933745453554d374854434f6d497265322f554a4f726d7a703662304c527354712b425652596b55514236514a5867647935312b44564e324831614b61616e4149383967686c53747255504e37546d57345378645a79634e6564416e32563955304669562b39377558534e476d365344695275363168356158506f64524c48586f4738636151386d716e4d7a2f636646534169692b634e67766d674e41717869723053766f79564c7977634e66737a4435516f6b784d38586264693550396f7363596e32345436667a3362795a4937497a6e5a4c76393866644356596f684b33447457657337467258632f696d582b476939394a45542b6559424457464a78515463456f635a694d747142646e53474e76537a67665331614779314277554d6e327566725170594a795769756c6b4845615a446b4850534538336e6d7745644448564a5a356f575178785743483659784263475067346275366d7862682b516b4f6658566c4333414b764d42326c412f456449787947476c737a744f6c724439306f59454d2f5a75684331534d50667a4d6e682f683676707955686c544d4853386d452b70374d754c794434504978566778566745584b35325142566147357a7755513243496b5246536169565767666751784d4953364e4779666e4f4f73324931503857372b6d72653736384f336a34584843763870763379567476694d365679566834314e43457352496a336b4b3256344174366341547273354848713053362f78584c6a662b4e2b496a504533364e6f38795748793532437178626a5451397444416771514353497974534658497a4c566b4977486578774b704e6951624664634c6d2f6630765150733948416c3772576d5858737850454f424c345a465067494f443064654e78627946373235544948456768726f74363554307031646364483639394e786d755a34656c537a595472334572414b57656e34794d7a75714a4d494f6e4d6e46787277414e496f6850673638626e4542695034686f374f4f4944447977524a7471466d5564526e4d2f473364567a3569355a79646a316b547931722f6549485a316c6b704b706c59626650336f6e736c6341334a34534f4253464343395a634c6b56634a4c46307530354e3342614254486f41794967413463445a4e6c3941504578464f4d43777a5970785235646164303458656e334f7777447835363637684f35557641704f41395967495a4c30663672314138704d76516279757545706a3151346579564853373255366f3337426e6e497034553069446b523038422b462f396553774477454e2b5256794a695251745a6644354474654752784e7a524773747757505441487552425052344342464d716339786f7273574b6e68642b544e614f7a7265544c726a47686a6945483570616479417a364f5638355973686678505149476c7365737a655148714871697357744c592f7448364a73316743374e316e754847684b6335767361666b7a5a777950666178427a6a486f7758306a414b79636753504e65564457354a4c746f47543330326f4b73316e323575496e636544736e324c657666714a6866747731575851637667414b693869456f436b50492b3159777468477566644d784b646a442f595673517941726a546c4f726b34576c322f35484a36626d357462384177764e55586d57534c575353557a4844444a2b2f33462b724a504e7a56733774372f58303869767148554854367775376434386f5548416634364743666978615348414f4f354438313048443347394c7558395538534877597a30775a4f46766335737236396f36585238696c4e724b795277574d72783770635558464641632b776234657853324b746a334744533233756b78385932586b4870635979556e7575615848444d46613563344e3337576c7554737669595879576268396d47753366776b4c6433654e6d4e48314b597675474a66545841376c354e46315441616667433866426a4451653657687266415439524f6451624b635735533846764e756467364e7754326138584351394c57757043423544793041764e6c6833412f6a66552f456e752f2b6c674d63374f6c4d67304f51346c30386d34796e314134477477776a4b577a732f626d6f39356559514c364b5a787841626a6f68644272386875455a37674346514b4b6e4345766d4b4a7658616b514b6e67636339344a58687853554873375669796b3550312f4b6d6d7a50566a337a3434613275707439433774527a497732316a7276625a7a4c744d615444303833304e673042796331683755356b6b336532747a567453714e4a32697a6a43683550574a596a572f78654f73444e61413748424f2b4c586861386632646263336661714e4a6b484465337235785874774b7a646e6c735770744d52746f77495a552b4375642b734e32312f766c6b66434f744833504c6d30395538774f50593937656e6571524d6f5767304e745673686e6c6539706444647447437443712f5a6861766e782b64596d6d624d384a4c71354e35656f55314c43465259616d666e4e38516e446c554c4d314b35444a376f325a3553756469792f6a536e38426f4d705441523849616839686776396f74494e614d75425550796272664d58637568397972754e355072634554745a47594174674f6a7a68305054713851524f34456656375339615546746f6c2f7778365054377442526272654f6d74615863697350592b326b5054384b4d4e3430612b4d71357459747755766b304d72634b4b7a633335375a5350687871504f586d366c65375859313934773036504e364977564d307a38774c4c4d4e6878454e77704d7a6b53396c414a4a6679512f41734732385844774f4f2f5230522b45706e7a567a47745363527a623857577359535a35336d7569335643517a32714d346354347a4861327578494a4f566877562b34634b466d5a3541396e3034572f304a6f6b594f6e63596d4973725354446558786b613845374f736f32306a446a745048786f79654a7262584f4f503476486c56374366526c784c5a6d31364355676578646376624c7a333661452b74686f504661554e2f744a4c712f4e784750305148746e666938426d743749324c534b4939572f676f63474432396f6136516e7361556c7067612b6156314d766d6259534c7077696b70756750344d7a2f41782f2f6a4873453562783070516c2b4d737571382f3142674d724d58462f41477669447730537a3230536c755933317658644b503061372b5075564a7068317853397a6e4161454e347a6f4c2f5769763872444d76304e7466764b665072746a76776342384945732f744d4c5342684759612b5036454c546a495047634c332f3553662f463643544d3465776443314d634b59676b65316f537843546e4d6d68365a734b3079752f5336475630756b67662f38544c447154516d756632705135792b563266424a374e4e6a73424c5a586a3149746e394d37336530764c6e32674a426a5636432b54386c532f4137504459766f7353515877552f5533526c436236623633354438554652386b77426c30704f7936584f4d494a3437385365526275794d356c496672786a4d75674a555172776754374e5a6c3970794b4164432f305a472f69556f6a65463166597a3259426e5a542b7267624d614f4b754273786f597267622b4236524d5854336a384a50414141414141456c46546b5375516d4343 }
swdon
1

голосов
1

ответ
266

Просмотры

Python периодически выбрасывает «AttributeError: объект„NoneType“не имеет атрибута„получить“» на том же словаре

У меня есть вложенный словарь так: почта = { «данные»: { «от»: { «текст»: «[email protected]»}} # некоторых другие записи ...} Я пытаюсь скопировать от стоимости используя следующий код: данные = mail.get ( '') данных new_dict [ 'синтаксического анализа'] [ 'от'] = data.get ( 'от') получаем ( 'текст') Вторая строка бросает исключение:. AttributeError: объект «NoneType» не имеет атрибута «получить» странная вещь, это происходит только иногда. Если добавить оператор печати непосредственно перед второй линией, как: данные = mail.get ( «данные») печати (типа (data.get ( «от»))) new_dict [ «разбора»] [ «от»] = данные .get ( «от»). получить ( «текст») ошибка исчезает, и я, как и ожидалось. Если удалить оператор печати, он иногда работает, а иногда он выдает ошибку. Ничто другие изменения в коде или данных. Причина я использую Get (), чтобы получить значение безопасно в случае, если ключ отсутствует.
swdon
5

голосов
1

ответ
1.4k

Просмотры

Работа над несколькими ветвями GIT, которые зависят друг от друга

Я поддерживать 4 ветви проекта на Git со структурой, как показано ниже. мастер-преподаватель студента аутентификация Проблемы в том, я создал филиал «аутентификация» последний и добавил код из этой отрасли. Теперь я перешел на отделение «учитель», чтобы продолжить работу над ним. Тем не менее, мне нужно некоторые функции, которые я добавил в модуле «аутентификации» для работы на модуле «учитель». Но я не закончил работу над модулем «аутентификация», чтобы сделать слияние. Что такое правильный способ справиться с этим с мерзавцем? Благодарю.
swdon
2

голосов
1

ответ
368

Просмотры

Джанго Rest Framework URL Mapping для нескольких приложений

У меня есть Джанго-отдых проект под названием основной и под ним я создал приложение под названием пользователей. Таким образом, мой проект имеет файлы: - главный / основной / urls.py и основные / пользователей / urls.py пользователей / urls.py меня от django.conf.urls импорта URL, включают в себя от импорта маршрутизаторов rest_framework от пользователей импортировать просмотры маршрутизатор = routers.DefaultRouter () router.register (r'users', views.UserViewSet) и в главном / главном / urls.py у меня есть от django.conf.urls импортировать URL из django.contrib импорта администратора от пользователей импорта URL-адресов urlpatterns = [URL (г '^ администратора /', admin.site.urls), гиперссылка (г '^ пользователей /', users.urls)] Тем не менее, я продолжаю получать NameError об ошибке: имя 'пользователи' не определен , Что такое правильный способ настройки адреса, когда у меня есть несколько приложений? Я хотел бы иметь файл urls.py для каждого приложения, которое не зависит от проекта.
swdon
2

голосов
1

ответ
330

Просмотры

Не удалось загрузить файл или сборку «System.Net.Http, Version = 2.2.29.0»

Я работаю на VSTO надстройки Outlook построена с использованием Visual Studio 2010. Я не установлен менеджер NuGet пакет. Когда я бегу Add-In в Outlook, я получаю исключение: Не удалось загрузить файл или сборку «System.Net.Http, Version = 2.2.29.0» Я просто клонировали оригинальный проект от GitHub. Когда я запускаю его в Debug с помощью Visual Studio, она отлично работает. Но, как только я опубликовать setup.exe и установить, я получаю вышеуказанную проблему. Ссылка на System.Net.Http уже добавлен. Мой файл app.config для Перспективы версии 2007 является: еще импортированные настройки DLL Дон т работать в том же растворе, есть второй проект, целью Outlook 2010. app.comfig для этого ниже:
swdon
2

голосов
3

ответ
4.2k

Просмотры

Настройка SSL с Tomcat 8.5 с помощью .keystore файла - не может хранить не-приватные ключи

У меня есть файл кот (2) .keystore файл , который я поместил в / Opt / TOMCAT каталог / конф. Разрешения каталогов устанавливаются следующим образом : корень @ XXXXXXXXXX20 больше, Может кто-нибудь помочь, пожалуйста? Есть ли другие, что мне нужно удалить из server.xml? Тип Keystore:: EDIT поставщик JKS Keystore: Вс Вашего хранилище ключей содержит 3 записей корня, Dec 19, 2016 г., trustedCertEntry, отпечатки пальцев сертификата (SHA1): хххй TOMCAT, 19 Дек, 2016 г., PrivateKeyEntry, отпечатки пальцы сертификата (SHA1): хххе INTERMED, Dec 19, 2016, trustedCertEntry, сертификат отпечатков пальцев (SHA1): ххххх я получаю выше, когда я бегу ./keytool -list -keystore "/ Opt / кот / CONF / кот (2) .keystore"
swdon
1

голосов
1

ответ
670

Просмотры

Ошибка: Не удалось найти или загрузить основной класс - баночку Spring загрузки приложений [закрыт]

Я построил приложение Spring загрузки и развертывания его в баночку с Ubuntu 16.04 LTS. Когда я пытаюсь запустить приложение с помощью Java -jar MyApp.jar он работает отлично. Однако, после того, как я создал Systemd файл, чтобы запустить его в качестве службы, я получаю следующее сообщение об ошибке: myapp.service - MYAPP Loaded: загружается (/etc/systemd/system/myapp.service отключенного; поставщик предустановленный: включено) Активность: не удалось (Результат: экзит-код), так как ср 2017-11-15 8:38:01 UTC; 18s назад Процесс: 5138 ExecStart = / USR / бен / Java /var/myapp/myapp.jar (код = вышел, состояние = 1 / FAILURE) Основная PID: 5138 (код = вышел, состояние = 1 / FAILURE) 15 ноября 08 : 38: 01 IP-ххх-хх-хх-хх Systemd [1]: Начало MyApp. 15 ноября 8:38:01 IP-ххх-хх-хх-хх ява [5138]: Ошибка: Не удалось найти или загрузить основной класс .var.myapp.myapp.jar 15 ноября 8:38:01 IP-ххх-хх -xx-хе Systemd [1]: myapp.service: Основной процесс вышел, код = вышел, состояние = 1 / FAILURE 15 ноября 8:38:01 IP-ххх-хх-хх-хх Systemd [1]: myapp.service: Блок вошел несостоявшееся государство. 15 ноября 8:38:01 IP-ххх-хх-хх-хх Systemd [1]: myapp.service: Ошибка с результатом 'выход кода. Может кто-то пожалуйста, помогите? Благодарю.
swdon
3

голосов
1

ответ
341

Просмотры

Why is the result of await/async undefined?

У меня есть маршрут, как: router.get ( "/ My_Resource", myController.getResult); Тогда мой контроллер, как: GetResult: асинхронный (REQ, Рез, следующий) => {{попробуйте Const пары = req.query.param; пусть ответ = {}; если (пары) {пусть [результат1, результат2] = ждет Promise.all ([myModel.getResult1 (пары), myModel.getResult2 (пары)]); console.log (результат1); console.log (результат2); } Res.send (ответ); } Поймать (е) {Следующий (е); }} И моя модель (которая запрашивая MongoDB) выглядит следующим образом: getResult1: (пары) => {нового Promise ((решительность, отклонять) => {MongoSchema1.findById (пары, (ошибка, результат) => {если ( ошибка) возвращение отклонять (ошибку); разрешить (результат результата:. {});}) выберите ( "field1 field2");})} getResult2: (пары) => {Нового Promise ((решительность, отклонять) => {MongoSchema2.findById (пары, (ошибка, результат) => {если (ошибка) возврат отклонять (ошибку), решительность (результат результата: {});}) выбрать?. ( «field1 field2»);})} Здесь, когда я пытаюсь console.log () в функциях модели я могу видеть, что результат не является неопределенным. Я получаю правильный результат. Тем не менее, можно видеть, что console.log () в методе контроллера запускается на выполнение перед console.log () в методах модели. В приведенном выше коде, я делаю Асинхронные вызовы параллельно с Promise.all (). Тем не менее, даже если я пытаюсь запустить один в то время, я все еще получаю мой результат неопределен в методе контроллера. Что я делаю неправильно? Нужно ли мне импортировать любой модуль, прежде чем я могу ждать? Благодарю. {Если (ошибка) возвращение отклонить (ошибка); решения (результат результат: {}?); .}) Выберите ( "поле1 поле2"); })} Здесь, когда я пытаюсь console.log () в функциях модели я могу видеть, что результат не является неопределенным. Я получаю правильный результат. Тем не менее, можно видеть, что console.log () в методе контроллера запускается на выполнение перед console.log () в методах модели. В приведенном выше коде, я делаю Асинхронные вызовы параллельно с Promise.all (). Тем не менее, даже если я пытаюсь запустить один в то время, я все еще получаю мой результат неопределен в методе контроллера. Что я делаю неправильно? Нужно ли мне импортировать любой модуль, прежде чем я могу ждать? Благодарю. {Если (ошибка) возвращение отклонить (ошибка); решения (результат результат: {}?); .}) Выберите ( "поле1 поле2"); })} Здесь, когда я пытаюсь console.log () в функциях модели я могу видеть, что результат не является неопределенным. Я получаю правильный результат. Тем не менее, можно видеть, что console.log () в методе контроллера запускается на выполнение перед console.log () в методах модели. В приведенном выше коде, я делаю Асинхронные вызовы параллельно с Promise.all (). Тем не менее, даже если я пытаюсь запустить один в то время, я все еще получаю мой результат неопределен в методе контроллера. Что я делаю неправильно? Нужно ли мне импортировать любой модуль, прежде чем я могу ждать? Благодарю. Я получаю правильный результат. Тем не менее, можно видеть, что console.log () в методе контроллера запускается на выполнение перед console.log () в методах модели. В приведенном выше коде, я делаю Асинхронные вызовы параллельно с Promise.all (). Тем не менее, даже если я пытаюсь запустить один в то время, я все еще получаю мой результат неопределен в методе контроллера. Что я делаю неправильно? Нужно ли мне импортировать любой модуль, прежде чем я могу ждать? Благодарю. Я получаю правильный результат. Тем не менее, можно видеть, что console.log () в методе контроллера запускается на выполнение перед console.log () в методах модели. В приведенном выше коде, я делаю Асинхронные вызовы параллельно с Promise.all (). Тем не менее, даже если я пытаюсь запустить один в то время, я все еще получаю мой результат неопределен в методе контроллера. Что я делаю неправильно? Нужно ли мне импортировать любой модуль, прежде чем я могу ждать? Благодарю.
swdon
2

голосов
1

ответ
63

Просмотры

Java уточнение функционального интерфейса - Параметры, передаваемые в лямбда-выражения

У меня есть следующий код, я изо всех сил, чтобы понять. Я один интерфейс объявлен, как показано ниже: WeightedRelationshipConsumer публичный интерфейс {булево принять (интермедиат sourceNodeId, внутр targetNodeId, длинные relationId, двойной вес); } Тогда у меня есть второй интерфейс, который принимает WeightedRelationshipConsumer объявлен, как показано ниже: WeightedRelationshipIterator Открытого интерфейса {forEachRelationship пустот (INT NodeId, направление, направление WeightedRelationshipConsumer потребитель); } Тогда в реализации алгоритма Дейкстров, у меня есть следующий код: частный недействительным пробег (INT цель, направление направления) {// `queue` является приоритетной очередью, которая содержит вершины графа, а (queue.isEmpty ()! ) {INT узел = queue.pop (); если (цель узла ==) {возвращение; } // `visited` является BitSet. visited.put (узел); // Получает вес расстояния текущего узла от узла расстояния карты. двойные затраты = this.costs.getOrDefault (узел, Double.MAX_VALUE); graph.forEachRelationship (узел, направление, (источник, цель, relId, вес) -> {updateCosts (источник, цель, вес + затраты);!, если (visited.contains (цель)) {queue.add (цель, 0) ;} возвращает истину;}); }} Это graph.forEachRelationship (узел, направление, (источник, цель, relId, вес) -> {updateCosts (источник, цель, вес + затраты);!, Если (visited.contains (цель)) {очереди. добавить (цель, 0); } Возвращает истину; }); что меня смущает. В частности, то, что является источник, цель, relId, вес и как они решаются? Эти 4 переменные не определены где-нибудь еще в этом классе. updateCosts () заключается в следующем: частный недействительный updateCosts (Int источник, Int мишень, двойные newCosts) {двойное oldCosts = costs.getOrDefault (мишень, Double.MAX_VALUE); если (newCosts <oldCosts) {costs.put (целевые, newCosts); path.put (цель, источник); }} Кроме того, если есть ресурсы, которые могут быть полезны для понимания этого типа кода, пожалуйста, укажите. Благодарю. частный недействительный updateCosts (Int источник, Int мишень, двойные newCosts) {двойное oldCosts = costs.getOrDefault (целевой, Double.MAX_VALUE); если (newCosts <oldCosts) {costs.put (целевые, newCosts); path.put (цель, источник); }} Кроме того, если есть ресурсы, которые могут быть полезны для понимания этого типа кода, пожалуйста, укажите. Благодарю. частный недействительный updateCosts (Int источник, Int мишень, двойные newCosts) {двойное oldCosts = costs.getOrDefault (целевой, Double.MAX_VALUE); если (newCosts <oldCosts) {costs.put (целевые, newCosts); path.put (цель, источник); }} Кроме того, если есть ресурсы, которые могут быть полезны для понимания этого типа кода, пожалуйста, укажите. Благодарю.
swdon
1

голосов
1

ответ
156

Просмотры

DNN Error for DotNetNuke in a farm environment

Я работаю над проектом ASP.NET, который использует DNN (DotNetNuke). Производственная среда у нас есть 2 сервера IIS с веб-сайта, развернутого на обоих. Два веб-серверов имеют сетевой балансировки нагрузки в передней. Оба сервера разделяют один и тот же экземпляр SQL-сервер и файловый сервер, где файлы содержимое организованы. Я уже опробовали как вебсервер отдельно и работает отлично. Но как только они собрались на ферме с сетевой балансировкой нагрузки мы периодически получают серую страницу с «DNN Error. Недоступен сайт. Вернуться на сайт» page.Also, если у меня только один веб-сервер с NLB настроена, она отлично работает тоже. Существует не так много в журналах. Файл web.config имеет: это еще потому там не так много в журналах IIS. Я могу видеть IIS вызов метода GET к этому ErrorPage.aspx для некоторых 500 ошибок. Когда я проверяю журналы ошибок DNN ничего не происходит ни в одном из этих 2-х серверов в это же время. Некоторые думают, что проблема с сетевой балансировкой нагрузки. Но я чувствую, что какая-то ошибка происходит на уровне HTTP, вероятно из-за некоторой конфигурации в компонентах DNN. Но я совершенно новый для рамки DNN. Поэтому любые указатели на то, где я должен начать отладку очень ценится. Благодарю. Edit: Там множественная ошибка после входа в IIS, который говорит aspxerrorpath = / WebResource.axd Я не знаю, если это имеет отношение к ошибке DNN. м совершенно новые для рамки DNN. Поэтому любые указатели на то, где я должен начать отладку очень ценится. Благодарю. Edit: Там множественная ошибка после входа в IIS, который говорит aspxerrorpath = / WebResource.axd Я не знаю, если это имеет отношение к ошибке DNN. м совершенно новые для рамки DNN. Поэтому любые указатели на то, где я должен начать отладку очень ценится. Благодарю. Edit: Там множественная ошибка после входа в IIS, который говорит aspxerrorpath = / WebResource.axd Я не знаю, если это имеет отношение к ошибке DNN.
swdon
4

голосов
2

ответ
3k

Просмотры

Как создать SecureRandom строку длины п в Java? [Дубликат]

Этот вопрос уже есть ответ здесь: Как генерировать случайные буквенно-цифровую строку? 42 ответов я генерация случайной строки с помощью: частная строки generateSafeToken () {SecureRandom случайного = новый SecureRandom (); байт байт [] = новый байт [512]; random.nextBytes (байты); вернуть bytes.toString (); } Это дает строку длиной 11, такому как [B @ 70ffc557. Как я могу сделать это выше метод возвращает строку заданной длины. Например 20 символов?
swdon

Связанные вопросы