Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
J
javab_20230928
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
javab_20230928
Commits
a6dab807
Commit
a6dab807
authored
Nov 10, 2023
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
moduł soap_klient za pomocą interfejsu SEI
parent
4c937405
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
458 additions
and
2 deletions
+458
-2
Sklep.java
...ielomodulowy-soap_api/src/main/java/sklep/soap/Sklep.java
+2
-1
pom.xml
Wielomodulowy/wielomodulowy-soap_klient/pom.xml
+7
-0
Klient1_WszystkieProdukty.java
...src/main/java/sklep/klient/Klient1_WszystkieProdukty.java
+30
-0
Klient2.java
...ulowy-soap_klient/src/main/java/sklep/klient/Klient2.java
+36
-0
Klient3.java
...ulowy-soap_klient/src/main/java/sklep/klient/Klient3.java
+66
-0
OknoSoap.java
...lowy-soap_klient/src/main/java/sklep/klient/OknoSoap.java
+245
-0
SklepService.java
...-soap_klient/src/main/java/sklep/klient/SklepService.java
+68
-0
SklepImpl.java
...ulowy-soap_serwer/src/main/java/sklep/soap/SklepImpl.java
+4
-1
No files found.
Wielomodulowy/wielomodulowy-soap_api/src/main/java/sklep/soap/Sklep.java
View file @
a6dab807
...
@@ -12,8 +12,9 @@ import sklep.model.Customer;
...
@@ -12,8 +12,9 @@ import sklep.model.Customer;
import
sklep.model.Order
;
import
sklep.model.Order
;
import
sklep.model.Product
;
import
sklep.model.Product
;
@WebService
@WebService
(
name
=
"Sklep"
,
targetNamespace
=
Sklep
.
NAMESPACE
)
public
interface
Sklep
{
public
interface
Sklep
{
static
final
String
NAMESPACE
=
"http://sklep.alx.pl/"
;
@WebResult
(
name
=
"product"
)
@WebResult
(
name
=
"product"
)
public
List
<
Product
>
readAll
()
throws
DBException
;
public
List
<
Product
>
readAll
()
throws
DBException
;
...
...
Wielomodulowy/wielomodulowy-soap_klient/pom.xml
View file @
a6dab807
...
@@ -15,5 +15,12 @@
...
@@ -15,5 +15,12 @@
<artifactId>
wielomodulowy-soap_api
</artifactId>
<artifactId>
wielomodulowy-soap_api
</artifactId>
<version>
${project.version}
</version>
<version>
${project.version}
</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>
</project>
</project>
Wielomodulowy/wielomodulowy-soap_klient/src/main/java/sklep/klient/Klient1_WszystkieProdukty.java
0 → 100644
View file @
a6dab807
package
sklep
.
klient
;
import
java.util.List
;
import
sklep.db.DBException
;
import
sklep.model.Product
;
import
sklep.soap.Sklep
;
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
.
readAll
();
System
.
out
.
println
(
"Odczytano "
+
produkty
.
size
()
+
" produktów:"
);
for
(
Product
product
:
produkty
)
{
System
.
out
.
println
(
product
.
getProductName
()
+
" za cenę "
+
product
.
getPrice
());
}
}
catch
(
DBException
e
)
{
e
.
printStackTrace
();
}
System
.
out
.
println
(
"Koniec"
);
}
}
Wielomodulowy/wielomodulowy-soap_klient/src/main/java/sklep/klient/Klient2.java
0 → 100644
View file @
a6dab807
package
sklep
.
klient
;
import
java.util.Scanner
;
import
sklep.db.DBException
;
import
sklep.db.RecordNotFound
;
import
sklep.model.Product
;
import
sklep.soap.Sklep
;
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
.
readOne
(
id
);
System
.
out
.
println
(
"Znaleziono produkt: "
+
product
.
getProductName
()
+
" za cenę "
+
product
.
getPrice
());
if
(
product
.
getDescription
()
!=
null
)
{
System
.
out
.
println
(
"Opis: "
+
product
.
getDescription
());
}
}
catch
(
RecordNotFound
e
)
{
System
.
out
.
println
(
"Nie ma takiego rekordu"
);
}
catch
(
DBException
e
)
{
System
.
out
.
println
(
"Inny błąd: "
+
e
);
e
.
printStackTrace
();
}
}
}
}
Wielomodulowy/wielomodulowy-soap_klient/src/main/java/sklep/klient/Klient3.java
0 → 100644
View file @
a6dab807
package
sklep
.
klient
;
import
java.math.BigDecimal
;
import
java.util.Locale
;
import
java.util.Scanner
;
import
sklep.db.DBException
;
import
sklep.db.RecordNotFound
;
import
sklep.model.Product
;
import
sklep.soap.Sklep
;
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
.
readOne
(
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
.
saveProduct
(
product
);
System
.
out
.
println
(
"Zapisano zmiany"
);
}
System
.
out
.
println
();
}
catch
(
RecordNotFound
e
)
{
System
.
out
.
println
(
"Nie ma takiego rekordu"
);
}
catch
(
DBException
e
)
{
System
.
out
.
println
(
"Inny błąd: "
+
e
);
e
.
printStackTrace
();
}
}
}
}
Wielomodulowy/wielomodulowy-soap_klient/src/main/java/sklep/klient/OknoSoap.java
0 → 100644
View file @
a6dab807
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.db.DBException
;
import
sklep.db.RecordNotFound
;
import
sklep.model.Product
;
import
sklep.soap.Sklep
;
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
.
readOne
(
id
);
try
{
byte
[]
bajtyZeZdjeciem
=
proxy
.
getPhoto
(
id
);
if
(
bajtyZeZdjeciem
!=
null
)
{
ikonaZeZdjeciem
=
new
ImageIcon
(
bajtyZeZdjeciem
);
}
}
catch
(
RecordNotFound
e
)
{
// zdjecie zostaje nullem
}
}
catch
(
DBException
e
)
{
e
.
printStackTrace
();
}
catch
(
RecordNotFound
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
);
}
}
Wielomodulowy/wielomodulowy-soap_klient/src/main/java/sklep/klient/SklepService.java
0 → 100644
View file @
a6dab807
package
sklep
.
klient
;
import
java.net.MalformedURLException
;
import
java.net.URL
;
import
javax.xml.namespace.QName
;
import
jakarta.xml.ws.Service
;
import
jakarta.xml.ws.WebEndpoint
;
import
jakarta.xml.ws.WebServiceClient
;
import
jakarta.xml.ws.WebServiceFeature
;
import
sklep.soap.Sklep
;
@WebServiceClient
(
name
=
"SklepService"
,
wsdlLocation
=
SklepService
.
ADRES_WSDL
,
targetNamespace
=
Sklep
.
NAMESPACE
)
public
class
SklepService
extends
Service
{
final
static
String
ADRES_WSDL
=
"http://localhost:8080/wielomodulowy-soap_serwer/SklepService?wsdl"
;
public
final
static
URL
WSDL_LOCATION
;
public
final
static
QName
SERVICE
=
new
QName
(
Sklep
.
NAMESPACE
,
"SklepService"
);
public
final
static
QName
SklepPort
=
new
QName
(
Sklep
.
NAMESPACE
,
"SklepPort"
);
static
{
URL
url
=
null
;
try
{
url
=
new
URL
(
ADRES_WSDL
);
}
catch
(
MalformedURLException
e
)
{
System
.
err
.
println
(
"Can not initialize the default wsdl from "
+
ADRES_WSDL
);
}
WSDL_LOCATION
=
url
;
}
public
SklepService
(
URL
wsdlLocation
)
{
super
(
wsdlLocation
,
SERVICE
);
}
public
SklepService
(
URL
wsdlLocation
,
QName
serviceName
)
{
super
(
wsdlLocation
,
serviceName
);
}
public
SklepService
()
{
super
(
WSDL_LOCATION
,
SERVICE
);
}
public
SklepService
(
WebServiceFeature
...
features
)
{
super
(
WSDL_LOCATION
,
SERVICE
,
features
);
}
public
SklepService
(
URL
wsdlLocation
,
WebServiceFeature
...
features
)
{
super
(
wsdlLocation
,
SERVICE
,
features
);
}
public
SklepService
(
URL
wsdlLocation
,
QName
serviceName
,
WebServiceFeature
...
features
)
{
super
(
wsdlLocation
,
serviceName
,
features
);
}
@WebEndpoint
(
name
=
"SklepPort"
)
public
Sklep
getSklepPort
()
{
return
super
.
getPort
(
SklepPort
,
Sklep
.
class
);
}
@WebEndpoint
(
name
=
"SklepPort"
)
public
Sklep
getSklepPort
(
WebServiceFeature
...
features
)
{
return
super
.
getPort
(
SklepPort
,
Sklep
.
class
,
features
);
}
}
Wielomodulowy/wielomodulowy-soap_serwer/src/main/java/sklep/soap/SklepImpl.java
View file @
a6dab807
...
@@ -15,8 +15,11 @@ import sklep.model.Customer;
...
@@ -15,8 +15,11 @@ import sklep.model.Customer;
import
sklep.model.Order
;
import
sklep.model.Order
;
import
sklep.model.Product
;
import
sklep.model.Product
;
@WebService
(
endpointInterface
=
"sklep.soap.Sklep"
,
targetNamespace
=
Sklep
.
NAMESPACE
,
serviceName
=
"SklepService"
,
portName
=
"SklepPort"
)
@MTOM
@MTOM
@WebService
(
endpointInterface
=
"sklep.soap.Sklep"
)
public
class
SklepImpl
implements
Sklep
{
public
class
SklepImpl
implements
Sklep
{
public
List
<
Product
>
readAll
()
throws
DBException
{
public
List
<
Product
>
readAll
()
throws
DBException
{
...
...
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