Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
alx_20230801
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
alx_20230801
Commits
a17397c1
Commit
a17397c1
authored
Aug 02, 2023
by
Patryk Czarnik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
serwlet SAAJ - pierwsza obsługa POST
parent
385b8090
Show whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
72 additions
and
0 deletions
+72
-0
HelloServlet.java
SAAJ_Serwer/src/main/java/hello/HelloServlet.java
+72
-0
No files found.
SAAJ_Serwer/src/main/java/hello/HelloServlet.java
View file @
a17397c1
...
...
@@ -5,12 +5,19 @@ import jakarta.servlet.annotation.WebServlet;
import
jakarta.servlet.http.HttpServlet
;
import
jakarta.servlet.http.HttpServletRequest
;
import
jakarta.servlet.http.HttpServletResponse
;
import
jakarta.xml.soap.*
;
import
org.w3c.dom.Element
;
import
org.w3c.dom.NodeList
;
import
javax.xml.XMLConstants
;
import
javax.xml.namespace.QName
;
import
java.io.IOException
;
import
java.io.PrintWriter
;
import
java.util.Enumeration
;
@WebServlet
(
"/hello"
)
public
class
HelloServlet
extends
HttpServlet
{
private
static
final
String
NS
=
"http://hello/"
;
@Override
protected
void
doGet
(
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
ServletException
,
IOException
{
...
...
@@ -18,5 +25,70 @@ public class HelloServlet extends HttpServlet {
response
.
setCharacterEncoding
(
"UTF-8"
);
PrintWriter
out
=
response
.
getWriter
();
out
.
println
(
"Hello!"
);
out
.
println
(
"Przyślij SOAP-a za pomocą POST"
);
}
@Override
protected
void
doPost
(
HttpServletRequest
request
,
HttpServletResponse
response
)
throws
ServletException
,
IOException
{
try
{
MimeHeaders
headers
=
new
MimeHeaders
();
Enumeration
<
String
>
headerNames
=
request
.
getHeaderNames
();
while
(
headerNames
.
hasMoreElements
())
{
String
headerName
=
headerNames
.
nextElement
();
String
headerValue
=
request
.
getHeader
(
headerName
);
headers
.
setHeader
(
headerName
,
headerValue
);
}
String
name
=
null
;
int
repeat
=
1
;
MessageFactory
mf
=
MessageFactory
.
newInstance
();
SOAPMessage
req
=
mf
.
createMessage
(
headers
,
request
.
getInputStream
());
SOAPBody
reqBody
=
req
.
getSOAPBody
();
NodeList
found
=
reqBody
.
getElementsByTagNameNS
(
NS
,
"hello"
);
if
(
found
.
getLength
()
>
0
)
{
Element
sayHello
=
(
Element
)
found
.
item
(
0
);
found
=
sayHello
.
getElementsByTagNameNS
(
XMLConstants
.
NULL_NS_URI
,
"imie"
);
if
(
found
.
getLength
()
>
0
)
{
name
=
found
.
item
(
0
).
getTextContent
();
}
found
=
sayHello
.
getElementsByTagNameNS
(
XMLConstants
.
NULL_NS_URI
,
"powtorz"
);
if
(
found
.
getLength
()
>
0
)
{
try
{
repeat
=
Integer
.
parseInt
(
found
.
item
(
0
).
getTextContent
());
}
catch
(
NumberFormatException
nfe
)
{
repeat
=
0
;
}
}
}
SOAPMessage
resp
=
mf
.
createMessage
();
SOAPBody
respBody
=
resp
.
getSOAPBody
();
if
(
name
!=
null
)
{
StringBuilder
txt
=
new
StringBuilder
();
for
(
int
i
=
0
;
i
<
repeat
;
++
i
)
{
txt
.
append
(
"Hello "
);
txt
.
append
(
name
);
txt
.
append
(
'\n'
);
}
SOAPElement
sayHelloResponse
=
respBody
.
addBodyElement
(
new
QName
(
NS
,
"helloResponse"
,
"pre"
));
SOAPElement
message
=
sayHelloResponse
.
addChildElement
(
new
QName
(
XMLConstants
.
NULL_NS_URI
,
"powitanie"
));
message
.
setTextContent
(
txt
.
toString
());
}
else
{
Name
qname
=
SOAPFactory
.
newInstance
().
createName
(
"Client"
,
null
,
SOAPConstants
.
URI_NS_SOAP_ENVELOPE
);
SOAPFault
fault
=
respBody
.
addFault
();
fault
.
setFaultCode
(
qname
);
fault
.
setFaultString
(
"Bad request"
);
}
response
.
setContentType
(
"text/xml"
);
resp
.
writeTo
(
response
.
getOutputStream
());
response
.
getOutputStream
().
close
();
}
catch
(
Exception
e
)
{
throw
new
ServletException
(
e
);
}
}
}
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