Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
2
20230403
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Patryk Czarnik
20230403
Commits
9f9df1fc
Commit
9f9df1fc
authored
May 24, 2023
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
PRzykładowe programy klienta SOAP
parent
683763bc
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
383 additions
and
0 deletions
+383
-0
pom.xml
PC32-SoapKlient/pom.xml
+6
-0
Klient1_WszystkieProdukty.java
...src/main/java/sklep/klient/Klient1_WszystkieProdukty.java
+31
-0
Klient2.java
PC32-SoapKlient/src/main/java/sklep/klient/Klient2.java
+37
-0
Klient3.java
PC32-SoapKlient/src/main/java/sklep/klient/Klient3.java
+67
-0
OknoSoap.java
PC32-SoapKlient/src/main/java/sklep/klient/OknoSoap.java
+242
-0
No files found.
PC32-SoapKlient/pom.xml
View file @
9f9df1fc
...
@@ -17,6 +17,12 @@
...
@@ -17,6 +17,12 @@
<artifactId>
jakarta.xml.ws-api
</artifactId>
<artifactId>
jakarta.xml.ws-api
</artifactId>
<version>
4.0.0
</version>
<version>
4.0.0
</version>
</dependency>
</dependency>
<dependency>
<groupId>
com.sun.xml.ws
</groupId>
<artifactId>
jaxws-rt
</artifactId>
<version>
4.0.1
</version>
<scope>
runtime
</scope>
</dependency>
</dependencies>
</dependencies>
<build>
<build>
...
...
PC32-SoapKlient/src/main/java/sklep/klient/Klient1_WszystkieProdukty.java
0 → 100644
View file @
9f9df1fc
package
sklep
.
klient
;
import
java.util.List
;
import
sklep.generated.DBException_Exception
;
import
sklep.generated.Product
;
import
sklep.generated.Sklep
;
import
sklep.generated.SklepService
;
public
class
Klient1_WszystkieProdukty
{
public
static
void
main
(
String
[]
args
)
{
System
.
out
.
println
(
"Startujemy"
);
SklepService
service
=
new
SklepService
();
Sklep
sklep
=
service
.
getSklepPort
();
System
.
out
.
println
(
"Mam obiekt proxy: "
+
sklep
);
try
{
List
<
Product
>
produkty
=
sklep
.
wszystkieProdukty
();
System
.
out
.
println
(
"Odczytano "
+
produkty
.
size
()
+
" produktów:"
);
for
(
Product
product
:
produkty
)
{
System
.
out
.
println
(
product
.
getProductName
()
+
" za cenę "
+
product
.
getPrice
());
}
}
catch
(
DBException_Exception
e
)
{
e
.
printStackTrace
();
}
System
.
out
.
println
(
"Koniec"
);
}
}
PC32-SoapKlient/src/main/java/sklep/klient/Klient2.java
0 → 100644
View file @
9f9df1fc
package
sklep
.
klient
;
import
java.util.Scanner
;
import
sklep.generated.DBException_Exception
;
import
sklep.generated.Product
;
import
sklep.generated.RecordNotFound_Exception
;
import
sklep.generated.Sklep
;
import
sklep.generated.SklepService
;
public
class
Klient2
{
public
static
void
main
(
String
[]
args
)
{
Scanner
scanner
=
new
Scanner
(
System
.
in
);
SklepService
service
=
new
SklepService
();
Sklep
sklep
=
service
.
getSklepPort
();
while
(
true
)
{
System
.
out
.
println
(
"Podaj ID produktu lub 0, aby zakończyć"
);
int
id
=
scanner
.
nextInt
();
if
(
id
==
0
)
break
;
try
{
Product
product
=
sklep
.
produktWgId
(
id
);
System
.
out
.
println
(
"Znaleziono produkt: "
+
product
.
getProductName
()
+
" za cenę "
+
product
.
getPrice
());
if
(
product
.
getDescription
()
!=
null
)
{
System
.
out
.
println
(
"Opis: "
+
product
.
getDescription
());
}
}
catch
(
RecordNotFound_Exception
e
)
{
System
.
out
.
println
(
"Nie ma takiego rekordu"
);
}
catch
(
DBException_Exception
e
)
{
System
.
out
.
println
(
"Inny błąd: "
+
e
);
e
.
printStackTrace
();
}
}
}
}
PC32-SoapKlient/src/main/java/sklep/klient/Klient3.java
0 → 100644
View file @
9f9df1fc
package
sklep
.
klient
;
import
java.math.BigDecimal
;
import
java.util.Locale
;
import
java.util.Scanner
;
import
sklep.generated.DBException_Exception
;
import
sklep.generated.Product
;
import
sklep.generated.RecordNotFound_Exception
;
import
sklep.generated.Sklep
;
import
sklep.generated.SklepService
;
public
class
Klient3
{
public
static
void
main
(
String
[]
args
)
{
Scanner
scanner
=
new
Scanner
(
System
.
in
);
scanner
.
useLocale
(
Locale
.
US
);
SklepService
service
=
new
SklepService
();
Sklep
sklep
=
service
.
getSklepPort
();
while
(
true
)
{
System
.
out
.
println
(
"Podaj ID produktu lub 0, aby zakończyć"
);
int
id
=
scanner
.
nextInt
();
if
(
id
==
0
)
break
;
try
{
Product
product
=
sklep
.
produktWgId
(
id
);
System
.
out
.
println
(
"Znaleziono produkt: "
+
product
.
getProductName
()
+
" za cenę "
+
product
.
getPrice
());
if
(
product
.
getDescription
()
!=
null
)
{
System
.
out
.
println
(
"Opis: "
+
product
.
getDescription
());
}
boolean
czyCosSieZmienilo
=
false
;
System
.
out
.
println
(
"Podaj zmianę ceny: "
);
BigDecimal
zmiana
=
scanner
.
nextBigDecimal
();
if
(
zmiana
.
compareTo
(
BigDecimal
.
ZERO
)
!=
0
)
{
product
.
setPrice
(
product
.
getPrice
().
add
(
zmiana
));
czyCosSieZmienilo
=
true
;
}
scanner
.
nextLine
();
System
.
out
.
println
(
"Podaj nową nazwę (enter, aby nie zmieniać): "
);
String
nazwa
=
scanner
.
nextLine
();
if
(!
nazwa
.
isEmpty
())
{
product
.
setProductName
(
nazwa
);
czyCosSieZmienilo
=
true
;
}
System
.
out
.
println
(
"Podaj nowy opis (enter, aby nie zmieniać): "
);
String
opis
=
scanner
.
nextLine
();
if
(!
opis
.
isEmpty
())
{
product
.
setDescription
(
opis
);
czyCosSieZmienilo
=
true
;
}
if
(
czyCosSieZmienilo
)
{
sklep
.
zapiszProdukt
(
product
);
System
.
out
.
println
(
"Zapisano zmiany"
);
}
System
.
out
.
println
();
}
catch
(
RecordNotFound_Exception
e
)
{
System
.
out
.
println
(
"Nie ma takiego rekordu"
);
}
catch
(
DBException_Exception
e
)
{
System
.
out
.
println
(
"Inny błąd: "
+
e
);
e
.
printStackTrace
();
}
}
}
}
PC32-SoapKlient/src/main/java/sklep/klient/OknoSoap.java
0 → 100644
View file @
9f9df1fc
package
sklep
.
klient
;
import
java.awt.EventQueue
;
import
java.awt.Font
;
import
java.awt.event.ActionEvent
;
import
java.awt.event.ActionListener
;
import
javax.swing.GroupLayout
;
import
javax.swing.GroupLayout.Alignment
;
import
javax.swing.ImageIcon
;
import
javax.swing.JButton
;
import
javax.swing.JFrame
;
import
javax.swing.JLabel
;
import
javax.swing.JPanel
;
import
javax.swing.JSpinner
;
import
javax.swing.JTextField
;
import
javax.swing.LayoutStyle.ComponentPlacement
;
import
javax.swing.SwingWorker
;
import
javax.swing.event.ChangeEvent
;
import
javax.swing.event.ChangeListener
;
import
sklep.generated.*
;
public
class
OknoSoap
{
private
Sklep
proxy
;
private
JFrame
frame
;
private
JTextField
txtTytul
;
private
JTextField
txtMarka
;
private
JTextField
txtCena
;
private
JSpinner
spinner
;
private
JLabel
lblFoto
;
private
Product
biezacyProdukt
;
private
ImageIcon
ikonaZeZdjeciem
;
/**
* Launch the application.
*/
public
static
void
main
(
String
[]
args
)
{
EventQueue
.
invokeLater
(
new
Runnable
()
{
public
void
run
()
{
try
{
OknoSoap
window
=
new
OknoSoap
();
window
.
frame
.
setVisible
(
true
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
});
}
/**
* Create the application.
*/
public
OknoSoap
()
{
SklepService
serwis
=
new
SklepService
();
proxy
=
serwis
.
getSklepPort
();
initialize
();
}
/**
* Initialize the contents of the frame.
*/
private
void
initialize
()
{
frame
=
new
JFrame
();
frame
.
setBounds
(
100
,
100
,
841
,
801
);
frame
.
setDefaultCloseOperation
(
JFrame
.
EXIT_ON_CLOSE
);
spinner
=
new
JSpinner
();
spinner
.
addChangeListener
(
new
ChangeListener
()
{
public
void
stateChanged
(
ChangeEvent
e
)
{
wyswietl
();
}
});
spinner
.
setFont
(
new
Font
(
"Dialog"
,
Font
.
BOLD
,
22
));
JLabel
lblPodajIdOgoszenia
=
new
JLabel
(
"Podaj ID ogłoszenia"
);
lblPodajIdOgoszenia
.
setFont
(
new
Font
(
"Dialog"
,
Font
.
PLAIN
,
20
));
JButton
btnWywietl
=
new
JButton
(
"Wyświetl"
);
btnWywietl
.
addActionListener
(
new
ActionListener
()
{
public
void
actionPerformed
(
ActionEvent
ev
)
{
wyswietl
();
}
});
btnWywietl
.
setFont
(
new
Font
(
"Dialog"
,
Font
.
BOLD
,
20
));
JPanel
panel
=
new
JPanel
();
lblFoto
=
new
JLabel
(
"FOTO"
);
GroupLayout
groupLayout
=
new
GroupLayout
(
frame
.
getContentPane
());
groupLayout
.
setHorizontalGroup
(
groupLayout
.
createParallelGroup
(
Alignment
.
TRAILING
)
.
addGroup
(
groupLayout
.
createSequentialGroup
()
.
addContainerGap
()
.
addGroup
(
groupLayout
.
createParallelGroup
(
Alignment
.
LEADING
)
.
addComponent
(
lblFoto
,
GroupLayout
.
DEFAULT_SIZE
,
817
,
Short
.
MAX_VALUE
)
.
addGroup
(
groupLayout
.
createSequentialGroup
()
.
addComponent
(
lblPodajIdOgoszenia
)
.
addPreferredGap
(
ComponentPlacement
.
UNRELATED
)
.
addComponent
(
spinner
,
GroupLayout
.
PREFERRED_SIZE
,
72
,
GroupLayout
.
PREFERRED_SIZE
)
.
addPreferredGap
(
ComponentPlacement
.
RELATED
,
437
,
Short
.
MAX_VALUE
)
.
addComponent
(
btnWywietl
))
.
addComponent
(
panel
,
GroupLayout
.
DEFAULT_SIZE
,
817
,
Short
.
MAX_VALUE
))
.
addContainerGap
())
);
groupLayout
.
setVerticalGroup
(
groupLayout
.
createParallelGroup
(
Alignment
.
LEADING
)
.
addGroup
(
groupLayout
.
createSequentialGroup
()
.
addContainerGap
()
.
addGroup
(
groupLayout
.
createParallelGroup
(
Alignment
.
TRAILING
)
.
addGroup
(
groupLayout
.
createSequentialGroup
()
.
addGroup
(
groupLayout
.
createParallelGroup
(
Alignment
.
BASELINE
)
.
addComponent
(
lblPodajIdOgoszenia
)
.
addComponent
(
spinner
,
GroupLayout
.
PREFERRED_SIZE
,
GroupLayout
.
DEFAULT_SIZE
,
GroupLayout
.
PREFERRED_SIZE
))
.
addGap
(
20
))
.
addGroup
(
groupLayout
.
createSequentialGroup
()
.
addComponent
(
btnWywietl
)
.
addPreferredGap
(
ComponentPlacement
.
UNRELATED
)))
.
addComponent
(
panel
,
GroupLayout
.
PREFERRED_SIZE
,
155
,
GroupLayout
.
PREFERRED_SIZE
)
.
addGap
(
18
)
.
addComponent
(
lblFoto
,
GroupLayout
.
DEFAULT_SIZE
,
523
,
Short
.
MAX_VALUE
)
.
addContainerGap
())
);
JLabel
lblTytu
=
new
JLabel
(
"Nazwa"
);
lblTytu
.
setFont
(
new
Font
(
"Dialog"
,
Font
.
PLAIN
,
18
));
txtTytul
=
new
JTextField
();
txtTytul
.
setFont
(
new
Font
(
"Dialog"
,
Font
.
BOLD
,
16
));
txtTytul
.
setColumns
(
10
);
JLabel
lblMarka
=
new
JLabel
(
"Opis"
);
lblMarka
.
setFont
(
new
Font
(
"Dialog"
,
Font
.
PLAIN
,
18
));
txtMarka
=
new
JTextField
();
txtMarka
.
setFont
(
new
Font
(
"Dialog"
,
Font
.
BOLD
,
16
));
txtMarka
.
setColumns
(
10
);
JLabel
lblCena
=
new
JLabel
(
"Cena"
);
lblCena
.
setFont
(
new
Font
(
"Dialog"
,
Font
.
PLAIN
,
18
));
txtCena
=
new
JTextField
();
txtCena
.
setFont
(
new
Font
(
"Dialog"
,
Font
.
BOLD
,
16
));
txtCena
.
setColumns
(
10
);
GroupLayout
gl_panel
=
new
GroupLayout
(
panel
);
gl_panel
.
setHorizontalGroup
(
gl_panel
.
createParallelGroup
(
Alignment
.
LEADING
)
.
addGroup
(
gl_panel
.
createSequentialGroup
()
.
addContainerGap
()
.
addGroup
(
gl_panel
.
createParallelGroup
(
Alignment
.
LEADING
)
.
addGroup
(
gl_panel
.
createSequentialGroup
()
.
addGroup
(
gl_panel
.
createParallelGroup
(
Alignment
.
TRAILING
,
false
)
.
addComponent
(
lblMarka
,
Alignment
.
LEADING
,
GroupLayout
.
DEFAULT_SIZE
,
GroupLayout
.
DEFAULT_SIZE
,
Short
.
MAX_VALUE
)
.
addComponent
(
lblTytu
,
Alignment
.
LEADING
,
GroupLayout
.
DEFAULT_SIZE
,
152
,
Short
.
MAX_VALUE
))
.
addPreferredGap
(
ComponentPlacement
.
UNRELATED
)
.
addGroup
(
gl_panel
.
createParallelGroup
(
Alignment
.
LEADING
)
.
addComponent
(
txtMarka
,
GroupLayout
.
DEFAULT_SIZE
,
623
,
Short
.
MAX_VALUE
)
.
addComponent
(
txtTytul
,
GroupLayout
.
DEFAULT_SIZE
,
623
,
Short
.
MAX_VALUE
)))
.
addGroup
(
Alignment
.
TRAILING
,
gl_panel
.
createSequentialGroup
()
.
addComponent
(
lblCena
)
.
addGap
(
128
)
.
addComponent
(
txtCena
,
GroupLayout
.
DEFAULT_SIZE
,
623
,
Short
.
MAX_VALUE
)))
.
addContainerGap
())
);
gl_panel
.
setVerticalGroup
(
gl_panel
.
createParallelGroup
(
Alignment
.
LEADING
)
.
addGroup
(
gl_panel
.
createSequentialGroup
()
.
addContainerGap
()
.
addGroup
(
gl_panel
.
createParallelGroup
(
Alignment
.
BASELINE
)
.
addComponent
(
lblTytu
)
.
addComponent
(
txtTytul
,
GroupLayout
.
PREFERRED_SIZE
,
GroupLayout
.
DEFAULT_SIZE
,
GroupLayout
.
PREFERRED_SIZE
))
.
addPreferredGap
(
ComponentPlacement
.
UNRELATED
)
.
addGroup
(
gl_panel
.
createParallelGroup
(
Alignment
.
BASELINE
)
.
addComponent
(
lblMarka
)
.
addComponent
(
txtMarka
,
GroupLayout
.
PREFERRED_SIZE
,
GroupLayout
.
DEFAULT_SIZE
,
GroupLayout
.
PREFERRED_SIZE
))
.
addGap
(
18
)
.
addGroup
(
gl_panel
.
createParallelGroup
(
Alignment
.
BASELINE
)
.
addComponent
(
txtCena
,
GroupLayout
.
PREFERRED_SIZE
,
GroupLayout
.
DEFAULT_SIZE
,
GroupLayout
.
PREFERRED_SIZE
)
.
addComponent
(
lblCena
))
.
addContainerGap
(
44
,
Short
.
MAX_VALUE
))
);
panel
.
setLayout
(
gl_panel
);
frame
.
getContentPane
().
setLayout
(
groupLayout
);
}
// jest wywoływane przez Swinga po kliknięciu guzika itp.
// ta metoda jest wykonywana w wątku EDT
protected
void
wyswietl
()
{
int
idOgloszenia
=
(
Integer
)
spinner
.
getValue
();
SwingWorker
<
Void
,
Void
>
worker
=
new
SwingWorker
<
Void
,
Void
>()
{
@Override
protected
Void
doInBackground
()
throws
Exception
{
// to wykona się w oddzielnym wątku,
// nie zablokuj okna, ale tutaj nie powinniśmy korzystać z elementów okna
pobierzDane
(
idOgloszenia
);
return
null
;
}
@Override
protected
void
done
()
{
// tu powinniśmy wpisać polecenia dotyczące okna, które mają być wykonane przez EDT po zakończeniu operacji
uaktualnijWidok
();
}
};
worker
.
execute
();
}
private
void
pobierzDane
(
int
id
)
{
// ma być wykonane w tle
try
{
ikonaZeZdjeciem
=
null
;
biezacyProdukt
=
null
;
biezacyProdukt
=
proxy
.
produktWgId
(
id
);
try
{
byte
[]
bajtyZeZdjeciem
=
proxy
.
foto
(
id
);
if
(
bajtyZeZdjeciem
!=
null
)
{
ikonaZeZdjeciem
=
new
ImageIcon
(
bajtyZeZdjeciem
);
}
}
catch
(
RecordNotFound_Exception
e
)
{
// zdjecie zostaje nullem
}
}
catch
(
DBException_Exception
e
)
{
e
.
printStackTrace
();
}
catch
(
RecordNotFound_Exception
e
)
{
}
}
private
void
uaktualnijWidok
()
{
// ma być wykonane przez okno (czyli wątek EDT)
if
(
biezacyProdukt
!=
null
)
{
txtTytul
.
setText
(
biezacyProdukt
.
getProductName
());
txtMarka
.
setText
(
biezacyProdukt
.
getDescription
());
txtCena
.
setText
(
String
.
valueOf
(
biezacyProdukt
.
getPrice
()));
}
else
{
txtTytul
.
setText
(
""
);
txtMarka
.
setText
(
""
);
txtCena
.
setText
(
""
);
}
lblFoto
.
setIcon
(
ikonaZeZdjeciem
);
}
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment