Support
Quality
Security
License
Reuse
kandi has reviewed druid and discovered the below as its top functions. This is intended to give you an instant insight into druid implemented functionality, and help decide if they suit your requirements.
Apache Druid: a high performance real-time analytics database.
I can't read .properties when I run tomcat with idea
public class JDBCUtil {
private static DataSource druidSource;
static {
Properties props = new Properties();
InputStream is = JDBCUtil.class.getClassLoader().getResourceAsStream("druid.properties");
try {
props.load(is);
druidSource = DruidDataSourceFactory.createDataSource(props);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
return druidSource.getConnection();
}
}
Getting Items out of a Json Array
var result = jsonRequest("Râsu", "Aegwynn", "mythic_plus_best_runs");
foreach (var item in result["mythic_plus_best_runs"])
{
Console.WriteLine(item["dungeon"]);
}
How to configure druid batch indexing jobs dynamic EMR cluster for batch ingestion?
import json
import xmltodict
path = 'mypath'
file = 'yarn-site.xml'
with open(os.path.join(path,file)) as xml_file:
data_dict = xmltodict.parse(xml_file.read())
xml_file.close()
druid_dict = {property.get('name'):property.get('value') for property in data_dict.get('configuration').get('property') }
print(json.dumps(druid_dict)) ```
Error getting async data from Solis Pro (Ginlong) plataform with payload
import requests
import json
s = requests.Session()
headers = {'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.110 Safari/537.36'}
url = 'https://m.ginlong.com/login.html'
resp = s.get(url,headers=headers)
print(resp)
login_url = 'https://m.ginlong.com/cpro/login/validateLogin.json'
payload = {
'userName':'username',
'userNameDisplay':'username',
'password':'password',
'lan':'2',
'domain':'m.ginlong.com',
'userType':'C'
}
headers = {
'accept':'application/json, text/plain, */*',
'accept-encoding':'gzip, deflate, br',
'content-type':'application/x-www-form-urlencoded',
'origin':'https://m.ginlong.com',
'referer':'https://m.ginlong.com/login.html',
'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'
}
login = s.post(login_url,headers=headers,data=payload)
print(login)
new_plant_payload = {
'name':'new_plant_2',
'nmi':'',
'type':'2',
'gridType':'1',
'searchInput':'',
'positionAddressInput':'ChinaJiang Su ShengWu Xi ShiXin Wu QuTian An Zhi Hui Cheng A2',
'rectangle':'120.36118,31.5065;',
'lon':'120.36118',
'lat':'31.5065',
'address':'ChinaJiang Su ShengWu Xi ShiXin Wu QuTian An Zhi Hui Cheng A2',
'country':'Jiang Su Sheng',
'state':'Wu Xi Shi',
'city':'Xin Wu Qu',
'district':'Tian An Zhi Hui Cheng A2',
'countryId':'44',
'stateId':'',
'cityId':'',
'districtId':'',
'power':'5.00',
'timezoneId':'34',
'direction':'180°',
'angle':'26°',
'currencyId':'19',
'benchmarkPrice':'1.372',
'price':'0.75',
'priceNet':'1',
'subsidy':'0.372',
'subsidyYears':'20',
'subsidyLocal':'0',
'subsidyLocalYears':'0',
'subsidyCity':'0',
'subsidyCityYears':'0',
'subsidyCounty':'0',
'subsidyCountyYears':'0',
'cost':'37500.00',
'subsidyBuild':'1000',
'percent':'0%',
'interest':'0',
'years':'',
'repay':'1',
'phone':''
}
create_plant_headers = {
'accept':'application/json',
'content-type':'application/x-www-form-urlencoded',
'user-agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/97.0.4692.71 Safari/537.36'
}
create_url = 'https://m.ginlong.com/cpro/epc/plantCreate/create/doSubmitPlant.json'
create = s.post(create_url,headers=create_plant_headers,data=new_plant_payload)
print(create)
print(create.text)
plant_id = create.json()['result']
async_url = 'https://m.ginlong.com/cpro/epc/plantview/view/doAsyncPlantList.json'
postData = {
"plantArray": [{"plantId":plant_id,"timezoneId":24,"updateTime":"2022-01-18"}]
}
post_async = s.post(async_url,json=json.dumps(postData))
print(post_async)
print(post_async.text)
Is there a way to make a variable that changes based on the result of a random.choice?
def randclass():
return random.choice(class_dict[chosenrace])
def import_barbarian():
print(chosenrace, "Barbarian")
if fullconfirm == "yes":
from barbarianfullbuild import barbarianrandsubclass, barbarianrandbackground, barbarianskills
print(barbarianrandsubclass)
print(barbarianrandbackground)
print(barbarianskills)
def import_druid():
print(chosenrace, "Druid")
if fullconfirm == "yes":
from druidfullbuild import druidrandsubclass, druidrandbackground, druidskills
print(druidrandsubclass)
print(druidrandbackground)
print(druidskills)
import_races = {
"Barbarian": import_barbarian,
"Druid": import_druid
}
import_races[randclass()]()
-----------------------
def randclass():
return random.choice(class_dict[chosenrace])
a = randclass()
print(chosenrace,a)
b = a.lower()
if fullconfirm == "yes":
exec(f"from {b}fullbuild import {b}randsubclass, {b}randbackground, {b}skills")
exec(f"print({b}randsubclass)")
exec(f"print({b}randbackground)")
exec(f"print({b}skills)")
How to delete any child Widget from a Flex container
use druid::{ WidgetPod };
use druid::widget::{*};
//Same as original but has to be copy/pasted because it is private in its
own crate
pub struct ChildWidget<T> {
widget: WidgetPod<T, Box<dyn Widget<T>>>,
params: FlexParams,
}
//Struct with exposed children field
pub struct ClearableFlex<T> {
direction: Axis,
cross_alignment: CrossAxisAlignment,
main_alignment: MainAxisAlignment,
fill_major_axis: bool,
pub children: Vec<ChildWidget<T>>, //key part - this is made public
}
impl<T> ClearableFlex<T>
{
//Method that clears vector containing children
pub fn clear(& mut self)
{
self.children.clear();
}
}
fn load_products_list(container: &mut Flex<AppState>, data: &mut AppState) {
//Hacky way to clear children, we use container2 if we need to add children again
let container2 : &mut Flex<AppState>;
unsafe {
let clearable_flex : &mut ClearableFlex<AppState> = std::mem::transmute( container );
clearable_flex.clear();
container2 = std::mem::transmute( clearable_flex );
}
...
}
-----------------------
use druid::{ WidgetPod };
use druid::widget::{*};
//Same as original but has to be copy/pasted because it is private in its
own crate
pub struct ChildWidget<T> {
widget: WidgetPod<T, Box<dyn Widget<T>>>,
params: FlexParams,
}
//Struct with exposed children field
pub struct ClearableFlex<T> {
direction: Axis,
cross_alignment: CrossAxisAlignment,
main_alignment: MainAxisAlignment,
fill_major_axis: bool,
pub children: Vec<ChildWidget<T>>, //key part - this is made public
}
impl<T> ClearableFlex<T>
{
//Method that clears vector containing children
pub fn clear(& mut self)
{
self.children.clear();
}
}
fn load_products_list(container: &mut Flex<AppState>, data: &mut AppState) {
//Hacky way to clear children, we use container2 if we need to add children again
let container2 : &mut Flex<AppState>;
unsafe {
let clearable_flex : &mut ClearableFlex<AppState> = std::mem::transmute( container );
clearable_flex.clear();
container2 = std::mem::transmute( clearable_flex );
}
...
}
Delete data in druid datasource
{
"type": "index_parallel",
"spec": {
"dataSchema": {
"dataSource": "my_datasource",
"timestampSpec": {
"column": "RecordDate",
"format": "YYYY-MM-DD"
},
"dimensionsSpec": {
"dimensions":["RecordDate", "Column1", "Column2"]
},
"metricsSpec": [
],
"granularitySpec": {
"type": "uniform",
"queryGranularity": "none",
"segmentGranularity": "day",
"rollup": "false",
"intervals":["1970-01-01/2021-12-27"]
},
"transformSpec" : {
"transforms" : [ ]
}
},
"ioConfig": {
"type": "index_parallel",
"inputSource": {
"type": "druid",
"dataSource": "my_datasource",
"interval": "1970-01-01/2021-12-26",
"filter" :{"type":"not", "field":{"type":"expression", "expression":"RecordDate >='1997-02-01' && RecordDate<='1997-02-28'"}},
},
"appendToExisting":false,
"dropExisting":true
},
"tuningConfig": {
"type": "index_parallel",
"partitionsSpec": {
"type": "dynamic"
},
"maxNumConcurrentSubTasks": 4
}
}
}
How do I SQL INSERT INTO two different arrays into a table?
INSERT INTO character_create_template (
race,
aspect,
instance,
pos_x,
pos_y,
pos_z,
orientation,
faction,
autoAttack,
race_icon,
class_icon,
race_description,
class_description,
isactive,
respawnInstance,
respawnPosX,
respawnPosY,
respawnPosZ,
startingLevel,
sprint
)
with
race as (
select 'Dwarf' as name
union all select 'Elf' -- repeat this line for more races
),
class as (
select 'Barbarian' as name
union all select 'Bard' -- repeat this line for more classes
)
select
437,
428,
29,
- 170,
74,
154,
0,
1,
- 1,
"Assets/Resources/Assets/Icons/Race Icons/Dwarf.png",
"Assets/Resources/Assets/Icons/Class Icons/Druid.png",
r.name,
c.name,
1,
29,
- 170,
74,
154,
1,
- 1
from race r
cross join class c
How can I efficiently respond to ingame target selection events?
# some stuff
MyAddon.xml
<UI>
<Script file="MyAddon.lua"/>
<Frame name="MyAddonFrame">
<OnLoad> self:RegisterEvent("PLAYER_ENTERING_WORLD") </OnLoad>
<OnLoad> self:RegisterEvent("PLAYER_ENTERING_WORLD") </OnLoad>
<OnEvent> print("Event name " .. event) </OnEvent>
<OnEvent> MyAddon:OnEvent(self, event, ...) </OnEvent>
MyAddon = {}
function MyAddon:OnEvent(frame, event, ...)
if event == "SOME_EVENT_NAME" then
local _, name = ...
if is this some player then
MyAddon:SomePlayerDidSomething(name)
end
elseif event == "SOME_EVENT_NAME" then
end
end
MyAddon.classNames = {
[1] = "warrior",
[2] = "paladin",
[3] = "hunter",
}
local className = self.classNames[playerClassId]
if className then
message("It's a " .. className .. ".")
end
-----------------------
# some stuff
MyAddon.xml
<UI>
<Script file="MyAddon.lua"/>
<Frame name="MyAddonFrame">
<OnLoad> self:RegisterEvent("PLAYER_ENTERING_WORLD") </OnLoad>
<OnLoad> self:RegisterEvent("PLAYER_ENTERING_WORLD") </OnLoad>
<OnEvent> print("Event name " .. event) </OnEvent>
<OnEvent> MyAddon:OnEvent(self, event, ...) </OnEvent>
MyAddon = {}
function MyAddon:OnEvent(frame, event, ...)
if event == "SOME_EVENT_NAME" then
local _, name = ...
if is this some player then
MyAddon:SomePlayerDidSomething(name)
end
elseif event == "SOME_EVENT_NAME" then
end
end
MyAddon.classNames = {
[1] = "warrior",
[2] = "paladin",
[3] = "hunter",
}
local className = self.classNames[playerClassId]
if className then
message("It's a " .. className .. ".")
end
-----------------------
# some stuff
MyAddon.xml
<UI>
<Script file="MyAddon.lua"/>
<Frame name="MyAddonFrame">
<OnLoad> self:RegisterEvent("PLAYER_ENTERING_WORLD") </OnLoad>
<OnLoad> self:RegisterEvent("PLAYER_ENTERING_WORLD") </OnLoad>
<OnEvent> print("Event name " .. event) </OnEvent>
<OnEvent> MyAddon:OnEvent(self, event, ...) </OnEvent>
MyAddon = {}
function MyAddon:OnEvent(frame, event, ...)
if event == "SOME_EVENT_NAME" then
local _, name = ...
if is this some player then
MyAddon:SomePlayerDidSomething(name)
end
elseif event == "SOME_EVENT_NAME" then
end
end
MyAddon.classNames = {
[1] = "warrior",
[2] = "paladin",
[3] = "hunter",
}
local className = self.classNames[playerClassId]
if className then
message("It's a " .. className .. ".")
end
-----------------------
# some stuff
MyAddon.xml
<UI>
<Script file="MyAddon.lua"/>
<Frame name="MyAddonFrame">
<OnLoad> self:RegisterEvent("PLAYER_ENTERING_WORLD") </OnLoad>
<OnLoad> self:RegisterEvent("PLAYER_ENTERING_WORLD") </OnLoad>
<OnEvent> print("Event name " .. event) </OnEvent>
<OnEvent> MyAddon:OnEvent(self, event, ...) </OnEvent>
MyAddon = {}
function MyAddon:OnEvent(frame, event, ...)
if event == "SOME_EVENT_NAME" then
local _, name = ...
if is this some player then
MyAddon:SomePlayerDidSomething(name)
end
elseif event == "SOME_EVENT_NAME" then
end
end
MyAddon.classNames = {
[1] = "warrior",
[2] = "paladin",
[3] = "hunter",
}
local className = self.classNames[playerClassId]
if className then
message("It's a " .. className .. ".")
end
-----------------------
# some stuff
MyAddon.xml
<UI>
<Script file="MyAddon.lua"/>
<Frame name="MyAddonFrame">
<OnLoad> self:RegisterEvent("PLAYER_ENTERING_WORLD") </OnLoad>
<OnLoad> self:RegisterEvent("PLAYER_ENTERING_WORLD") </OnLoad>
<OnEvent> print("Event name " .. event) </OnEvent>
<OnEvent> MyAddon:OnEvent(self, event, ...) </OnEvent>
MyAddon = {}
function MyAddon:OnEvent(frame, event, ...)
if event == "SOME_EVENT_NAME" then
local _, name = ...
if is this some player then
MyAddon:SomePlayerDidSomething(name)
end
elseif event == "SOME_EVENT_NAME" then
end
end
MyAddon.classNames = {
[1] = "warrior",
[2] = "paladin",
[3] = "hunter",
}
local className = self.classNames[playerClassId]
if className then
message("It's a " .. className .. ".")
end
-----------------------
# some stuff
MyAddon.xml
<UI>
<Script file="MyAddon.lua"/>
<Frame name="MyAddonFrame">
<OnLoad> self:RegisterEvent("PLAYER_ENTERING_WORLD") </OnLoad>
<OnLoad> self:RegisterEvent("PLAYER_ENTERING_WORLD") </OnLoad>
<OnEvent> print("Event name " .. event) </OnEvent>
<OnEvent> MyAddon:OnEvent(self, event, ...) </OnEvent>
MyAddon = {}
function MyAddon:OnEvent(frame, event, ...)
if event == "SOME_EVENT_NAME" then
local _, name = ...
if is this some player then
MyAddon:SomePlayerDidSomething(name)
end
elseif event == "SOME_EVENT_NAME" then
end
end
MyAddon.classNames = {
[1] = "warrior",
[2] = "paladin",
[3] = "hunter",
}
local className = self.classNames[playerClassId]
if className then
message("It's a " .. className .. ".")
end
-----------------------
# some stuff
MyAddon.xml
<UI>
<Script file="MyAddon.lua"/>
<Frame name="MyAddonFrame">
<OnLoad> self:RegisterEvent("PLAYER_ENTERING_WORLD") </OnLoad>
<OnLoad> self:RegisterEvent("PLAYER_ENTERING_WORLD") </OnLoad>
<OnEvent> print("Event name " .. event) </OnEvent>
<OnEvent> MyAddon:OnEvent(self, event, ...) </OnEvent>
MyAddon = {}
function MyAddon:OnEvent(frame, event, ...)
if event == "SOME_EVENT_NAME" then
local _, name = ...
if is this some player then
MyAddon:SomePlayerDidSomething(name)
end
elseif event == "SOME_EVENT_NAME" then
end
end
MyAddon.classNames = {
[1] = "warrior",
[2] = "paladin",
[3] = "hunter",
}
local className = self.classNames[playerClassId]
if className then
message("It's a " .. className .. ".")
end
-----------------------
# some stuff
MyAddon.xml
<UI>
<Script file="MyAddon.lua"/>
<Frame name="MyAddonFrame">
<OnLoad> self:RegisterEvent("PLAYER_ENTERING_WORLD") </OnLoad>
<OnLoad> self:RegisterEvent("PLAYER_ENTERING_WORLD") </OnLoad>
<OnEvent> print("Event name " .. event) </OnEvent>
<OnEvent> MyAddon:OnEvent(self, event, ...) </OnEvent>
MyAddon = {}
function MyAddon:OnEvent(frame, event, ...)
if event == "SOME_EVENT_NAME" then
local _, name = ...
if is this some player then
MyAddon:SomePlayerDidSomething(name)
end
elseif event == "SOME_EVENT_NAME" then
end
end
MyAddon.classNames = {
[1] = "warrior",
[2] = "paladin",
[3] = "hunter",
}
local className = self.classNames[playerClassId]
if className then
message("It's a " .. className .. ".")
end
-----------------------
# some stuff
MyAddon.xml
<UI>
<Script file="MyAddon.lua"/>
<Frame name="MyAddonFrame">
<OnLoad> self:RegisterEvent("PLAYER_ENTERING_WORLD") </OnLoad>
<OnLoad> self:RegisterEvent("PLAYER_ENTERING_WORLD") </OnLoad>
<OnEvent> print("Event name " .. event) </OnEvent>
<OnEvent> MyAddon:OnEvent(self, event, ...) </OnEvent>
MyAddon = {}
function MyAddon:OnEvent(frame, event, ...)
if event == "SOME_EVENT_NAME" then
local _, name = ...
if is this some player then
MyAddon:SomePlayerDidSomething(name)
end
elseif event == "SOME_EVENT_NAME" then
end
end
MyAddon.classNames = {
[1] = "warrior",
[2] = "paladin",
[3] = "hunter",
}
local className = self.classNames[playerClassId]
if className then
message("It's a " .. className .. ".")
end
-----------------------
## Interface: 90105
## Version: 1.0.0
## Title: SpeccySpecs
## Notes: Some Description
## Author: YourName
SpeccySpecs.lua
local classes = {
[1] = "warrior",
[2] = "paladin",
[3] = "hunter",
[4] = "rogue",
[5] = "priest",
[6] = "death knight",
[7] = "shaman",
[8] = "mage",
[9] = "warlock",
[10] = "monk",
[11] = "druid",
[12] = "demon hunter",
}
local function getPlayerClass(unit)
if UnitExists(unit) then
local text
if UnitIsPlayer(unit) then
local _, _, classId = UnitClass(unit)
local name = classes[classId]
if name then
text = "It's a "..name
else
text = "That class does not exist"
end
else
text = "Please target a player"
end
message(text)
end
end
local function OnEvent(self, event)
getPlayerClass("target")
end
local f = CreateFrame("Frame")
f:RegisterEvent("PLAYER_TARGET_CHANGED")
f:SetScript("OnEvent", OnEvent)
local f = CreateFrame("Frame")
f:RegisterEvent("PLAYER_TARGET_CHANGED")
f:SetScript("OnEvent", function(self, event)
if UnitIsPlayer("target") then
print("It's a "..UnitClass("target"))
end
end)
-----------------------
## Interface: 90105
## Version: 1.0.0
## Title: SpeccySpecs
## Notes: Some Description
## Author: YourName
SpeccySpecs.lua
local classes = {
[1] = "warrior",
[2] = "paladin",
[3] = "hunter",
[4] = "rogue",
[5] = "priest",
[6] = "death knight",
[7] = "shaman",
[8] = "mage",
[9] = "warlock",
[10] = "monk",
[11] = "druid",
[12] = "demon hunter",
}
local function getPlayerClass(unit)
if UnitExists(unit) then
local text
if UnitIsPlayer(unit) then
local _, _, classId = UnitClass(unit)
local name = classes[classId]
if name then
text = "It's a "..name
else
text = "That class does not exist"
end
else
text = "Please target a player"
end
message(text)
end
end
local function OnEvent(self, event)
getPlayerClass("target")
end
local f = CreateFrame("Frame")
f:RegisterEvent("PLAYER_TARGET_CHANGED")
f:SetScript("OnEvent", OnEvent)
local f = CreateFrame("Frame")
f:RegisterEvent("PLAYER_TARGET_CHANGED")
f:SetScript("OnEvent", function(self, event)
if UnitIsPlayer("target") then
print("It's a "..UnitClass("target"))
end
end)
-----------------------
## Interface: 90105
## Version: 1.0.0
## Title: SpeccySpecs
## Notes: Some Description
## Author: YourName
SpeccySpecs.lua
local classes = {
[1] = "warrior",
[2] = "paladin",
[3] = "hunter",
[4] = "rogue",
[5] = "priest",
[6] = "death knight",
[7] = "shaman",
[8] = "mage",
[9] = "warlock",
[10] = "monk",
[11] = "druid",
[12] = "demon hunter",
}
local function getPlayerClass(unit)
if UnitExists(unit) then
local text
if UnitIsPlayer(unit) then
local _, _, classId = UnitClass(unit)
local name = classes[classId]
if name then
text = "It's a "..name
else
text = "That class does not exist"
end
else
text = "Please target a player"
end
message(text)
end
end
local function OnEvent(self, event)
getPlayerClass("target")
end
local f = CreateFrame("Frame")
f:RegisterEvent("PLAYER_TARGET_CHANGED")
f:SetScript("OnEvent", OnEvent)
local f = CreateFrame("Frame")
f:RegisterEvent("PLAYER_TARGET_CHANGED")
f:SetScript("OnEvent", function(self, event)
if UnitIsPlayer("target") then
print("It's a "..UnitClass("target"))
end
end)
Ingest 2-digit year with druid?
"timestampSpec": {
"column": "timestamp",
"format": "MM/dd/yy"
}
QUESTION
I can't read .properties when I run tomcat with idea
Asked 2022-Apr-02 at 16:04I'm learning JavaWeb and deploying local tomcat9 in idea. An exception occurred when I tried to connect to the database by reading the properties file. It should be that my properties file was not found.
I tried to change the file path but it didn't work. What should I do?
This is my method to connect to the database and message
public class JDBCUtil {
private static DataSource druidSource;
static {
Properties props = new Properties();
InputStream is = ClassLoader.getSystemClassLoader().getResourceAsStream("production/begin/druid.properties");
try {
props.load(is);
druidSource = DruidDataSourceFactory.createDataSource(props);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
return druidSource.getConnection();
}
}
java.lang.NullPointerException: inStream parameter is null
at java.base/java.util.Objects.requireNonNull(Objects.java:233)
at java.base/java.util.Properties.load(Properties.java:407)
at DAO.util.JDBCUtil.<clinit>(JDBCUtil.java:24)
at servlets.AddServlet.doPost(AddServlet.java:39)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:681)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:764)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:227)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:189)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:162)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:197)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:135)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:687)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:360)
at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:399)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:890)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1743)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at org.apache.tomcat.util.threads.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1191)
at org.apache.tomcat.util.threads.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:659)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.base/java.lang.Thread.run(Thread.java:831)
This is my directory
Operating environment:MacOS12, idea2021.3.3, tomcat9.0.62, Java16.0.1
ANSWER
Answered 2022-Apr-02 at 16:04This problem has been solved.Thank for rehnoj's help.
The answer in Different behavior of ClassLoader.getSystemClassLoader().getResource() in servlet container and test environment.
The correct code
public class JDBCUtil {
private static DataSource druidSource;
static {
Properties props = new Properties();
InputStream is = JDBCUtil.class.getClassLoader().getResourceAsStream("druid.properties");
try {
props.load(is);
druidSource = DruidDataSourceFactory.createDataSource(props);
} catch (Exception e) {
e.printStackTrace();
}
}
public static Connection getConnection() throws SQLException {
return druidSource.getConnection();
}
}
Community Discussions, Code Snippets contain sources that include Stack Exchange Network
No vulnerabilities reported
Save this library and start creating your kit
Explore Related Topics
Save this library and start creating your kit