This commit is contained in:
purifetchi 2025-03-10 22:16:36 +01:00
parent 99ef660e5c
commit b7789f0ce8
14 changed files with 304 additions and 0 deletions

29
Soap/.gitignore vendored Normal file
View file

@ -0,0 +1,29 @@
### IntelliJ IDEA ###
out/
!**/src/main/**/out/
!**/src/test/**/out/
### Eclipse ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
### VS Code ###
.vscode/
### Mac OS ###
.DS_Store

8
Soap/.idea/.gitignore vendored Normal file
View file

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

View file

@ -0,0 +1,10 @@
<component name="libraryTable">
<library name="javax.jws.api" type="repository">
<properties maven-id="javax.jws:javax.jws-api:1.1" />
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/javax/jws/javax.jws-api/1.1/javax.jws-api-1.1.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

View file

@ -0,0 +1,14 @@
<component name="libraryTable">
<library name="javax.xml.ws.jaxws.api" type="repository">
<properties maven-id="javax.xml.ws:jaxws-api:2.3.1" />
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/javax/xml/ws/jaxws-api/2.3.1/jaxws-api-2.3.1.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/javax/xml/bind/jaxb-api/2.3.1/jaxb-api-2.3.1.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/javax/xml/soap/javax.xml.soap-api/1.4.0/javax.xml.soap-api-1.4.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/javax/annotation/javax.annotation-api/1.3.2/javax.annotation-api-1.3.2.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

View file

@ -0,0 +1,29 @@
<component name="libraryTable">
<library name="sun.xml.ws.rt" type="repository">
<properties maven-id="com.sun.xml.ws:rt:2.3.3" />
<CLASSES>
<root url="jar://$MAVEN_REPOSITORY$/com/sun/xml/ws/rt/2.3.3/rt-2.3.3.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/sun/xml/ws/policy/2.7.10/policy-2.7.10.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/sun/xml/bind/jaxb-impl/2.3.3/jaxb-impl-2.3.3.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/glassfish/ha/ha-api/3.1.12/ha-api-3.1.12.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/glassfish/external/management-api/3.2.2/management-api-3.2.2.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/glassfish/gmbal/gmbal/4.0.1/gmbal-4.0.1.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/glassfish/pfl/pfl-tf/4.1.0/pfl-tf-4.1.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/glassfish/pfl/pfl-basic/4.1.0/pfl-basic-4.1.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jvnet/staxex/stax-ex/1.8.3/stax-ex-1.8.3.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/sun/xml/stream/buffer/streambuffer/1.5.9/streambuffer-1.5.9.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/jvnet/mimepull/mimepull/1.9.13/mimepull-1.9.13.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/sun/activation/jakarta.activation/1.2.2/jakarta.activation-1.2.2.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/sun/xml/messaging/saaj/saaj-impl/1.5.2/saaj-impl-1.5.2.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/com/fasterxml/woodstox/woodstox-core/5.1.0/woodstox-core-5.1.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/org/codehaus/woodstox/stax2-api/4.1/stax2-api-4.1.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/jakarta/xml/ws/jakarta.xml.ws-api/2.3.3/jakarta.xml.ws-api-2.3.3.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/jakarta/xml/bind/jakarta.xml.bind-api/2.3.3/jakarta.xml.bind-api-2.3.3.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/jakarta/xml/soap/jakarta.xml.soap-api/1.4.2/jakarta.xml.soap-api-1.4.2.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/jakarta/jws/jakarta.jws-api/2.1.0/jakarta.jws-api-2.1.0.jar!/" />
<root url="jar://$MAVEN_REPOSITORY$/jakarta/annotation/jakarta.annotation-api/1.3.5/jakarta.annotation-api-1.3.5.jar!/" />
</CLASSES>
<JAVADOC />
<SOURCES />
</library>
</component>

6
Soap/.idea/misc.xml Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" languageLevel="JDK_23" default="true" project-jdk-name="openjdk-23" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

8
Soap/.idea/modules.xml Normal file
View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/Soap.iml" filepath="$PROJECT_DIR$/Soap.iml" />
</modules>
</component>
</project>

6
Soap/.idea/vcs.xml Normal file
View file

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$/.." vcs="Git" />
</component>
</project>

14
Soap/Soap.iml Normal file
View file

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="javax.jws.api" level="project" />
<orderEntry type="library" name="javax.xml.ws.jaxws.api" level="project" />
<orderEntry type="library" name="sun.xml.ws.rt" level="project" />
</component>
</module>

15
Soap/src/Main.java Normal file
View file

@ -0,0 +1,15 @@
//TIP To <b>Run</b> code, press <shortcut actionId="Run"/> or
// click the <icon src="AllIcons.Actions.Execute"/> icon in the gutter.
public class Main {
public static void main(String[] args) {
//TIP Press <shortcut actionId="ShowIntentionActions"/> with your caret at the highlighted text
// to see how IntelliJ IDEA suggests fixing it.
System.out.printf("Hello and welcome!");
for (int i = 1; i <= 5; i++) {
//TIP Press <shortcut actionId="Debug"/> to start debugging your code. We have set one <icon src="AllIcons.Debugger.Db_set_breakpoint"/> breakpoint
// for you, but you can always add more by pressing <shortcut actionId="ToggleLineBreakpoint"/>.
System.out.println("i = " + i);
}
}
}

View file

@ -0,0 +1,49 @@
package com.soapsoapsoap;
import java.util.HashMap;
import java.util.Map;
public class User {
private int id;
private String name;
private String email;
private Map<String, Double> scores;
public User(int id, String name, String email) {
this.id = id;
this.name = name;
this.email = email;
this.scores = new HashMap<>();
}
public int getId() {
return id;
}
public String getName() {
return name;
}
public String getEmail() {
return email;
}
public Map<String, Double> getScores() {
return scores;
}
public void addScore(String activity, double score) {
scores.put(activity, score);
}
public double calculateAverageScore() {
if (scores.isEmpty()) {
return 0.0;
}
double sum = 0;
for (double score : scores.values()) {
sum += score;
}
return sum / scores.size();
}
}

View file

@ -0,0 +1,18 @@
package com.soapsoapsoap;
import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
import java.util.HashMap;
import java.util.Map;
@WebService
@SOAPBinding(style = Style.RPC)
public interface UserSOAPService {
@WebMethod String[] getUsersList();
@WebMethod String getUserById(int id);
@WebMethod double calculateAverageScore(int userId);
@WebMethod boolean addScore(int userId, String activity, double score);
@WebMethod String[] findActivitiesByScore(String minScoreOperator, double minScore);
}

View file

@ -0,0 +1,89 @@
package com.soapsoapsoap;
import javax.jws.WebService;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import java.util.List;
@WebService(endpointInterface = "com.soapsoapsoap.UserSOAPService")
public class UserSOAPServiceImpl implements UserSOAPService {
private static Map<Integer, User> usersDb = new HashMap<>();
static {
initializeData();
}
private static void initializeData() {
User u1 = new User(1, "Foo", "foo@example.com");
u1.addScore("Activity 1", 80.5);
u1.addScore("Activity 2", 90.0);
u1.addScore("Activity 3", 75.0);
User u2 = new User(2, "Bar", "bar@example.com");
u2.addScore("Activity 1", 65.5);
u2.addScore("Activity 2", 70.0);
u2.addScore("Activity 3", 85.0);
User u3 = new User(3, "Baz", "baz@example.com");
u3.addScore("Activity 1", 95.0);
u3.addScore("Activity 2", 85.5);
u3.addScore("Activity 3", 80.0);
usersDb.put(u1.getId(), u1);
usersDb.put(u2.getId(), u2);
usersDb.put(u3.getId(), u3);
}
public String[] getUsersList() {
List<String> result = new ArrayList<>();
for (User user : usersDb.values()) {
result.add(user.getId() + ": " + user.getName() + " (" + user.getEmail() + ")");
}
return result.toArray(new String[0]);
}
public String getUserById(int id) {
User user = usersDb.get(id);
if (user != null) {
StringBuilder scoresStr = new StringBuilder();
for (Map.Entry<String, Double> entry : user.getScores().entrySet()) {
scoresStr.append(entry.getKey()).append(": ").append(entry.getValue()).append(", ");
}
return "ID: " + user.getId() + ", Name: " + user.getName() + ", Email: " + user.getEmail() + ", Scores: " + scoresStr.toString();
}
return "User not found";
}
public double calculateAverageScore(int userId) {
User user = usersDb.get(userId);
if (user != null) {
return user.calculateAverageScore();
}
return 0.0;
}
public boolean addScore(int userId, String activity, double score) {
User user = usersDb.get(userId);
if (user != null) {
user.addScore(activity, score);
return true;
}
return false;
}
public String[] findActivitiesByScore(String minScoreOperator, double minScore) {
List<String> results = new ArrayList<>();
for (User user : usersDb.values()) {
for (Map.Entry<String, Double> entry : user.getScores().entrySet()) {
double score = entry.getValue();
if ((">".equals(minScoreOperator) && score > minScore) ||
(">=".equals(minScoreOperator) && score >= minScore) ||
("=".equals(minScoreOperator) && score == minScore)) {
results.add(entry.getKey() + ": " + score + " (User: " + user.getName() + ")");
}
}
}
return results.toArray(new String[0]);
}
}

View file

@ -0,0 +1,9 @@
package com.soapsoapsoap;
import javax.xml.ws.Endpoint;
public class UserSOAPServicePublisher {
public static void main(String[] args) {
Endpoint.publish("http://localhost:7779/ws/user", new UserSOAPServiceImpl());
}
}