Witam,

Próbuje przesłać plik z klienta na serwer. Klient komunikuje się z serwerem przy pomocy interfejsu zdalnego komponentu EJB. Jeżeli chodzi o serwer - to używam Wildfly. Do przesłania pliku wykorzystuje bibliotekę RMIIO, jednakże w czasie próby wysłania pliku otrzymuje następujący błąd od serwera:


13:00:12,548 ERROR [org.jboss.as.ejb3] (EJB default - 2) javax.ejb.EJBTransactionRolledbackException: Unexpected Error
13:00:12,548 ERROR [org.jboss.as.ejb3.invocation] (EJB default - 2) JBAS014134: EJB Invocation failed on component FilesBean for method public java.lang.Boolean com.system.main.FilesBean.sendFile(com.healthmarketscience.rmiio.RemoteInputStream,java.lang.String): javax.ejb.EJBTransactionRolledbackException: Unexpected Error
	at org.jboss.as.ejb3.tx.CMTTxInterceptor.handleInCallerTx(CMTTxInterceptor.java:157) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInCallerTx(CMTTxInterceptor.java:253) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:342) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:239) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:43) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:95) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:55) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:326)
	at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:439)
	at org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:326)
	at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
	at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:185)
	at org.jboss.as.ee.component.ViewDescription$1.processInvocation(ViewDescription.java:182)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
	at org.jboss.as.ee.component.ProxyInvocationHandler.invoke(ProxyInvocationHandler.java:73)
	at com.system.main.FilesBean$$$view9.sendFile(Unknown Source) [ProjectEngineerServer.jar:]
	at com.system.main.HandlingBean.sendFile(HandlingBean.java:223) [ProjectEngineerServer.jar:]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_31]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0_31]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_31]
	at java.lang.reflect.Method.invoke(Method.java:483) [rt.jar:1.8.0_31]
	at org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)
	at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:407)
	at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:82) [wildfly-weld-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:93) [wildfly-weld-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)
	at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47) [wildfly-jpa-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:407)
	at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:55) [weld-core-impl-2.2.6.Final.jar:2014-10-03 10:05]
	at org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:83) [wildfly-weld-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45) [wildfly-ee-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
	at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.ejb3.component.interceptors.NonPooledEJBComponentInstanceAssociatingInterceptor.processInvocation(NonPooledEJBComponentInstanceAssociatingInterceptor.java:59) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:273) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.as.ejb3.tx.CMTTxInterceptor.required(CMTTxInterceptor.java:340) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.as.ejb3.tx.CMTTxInterceptor.processInvocation(CMTTxInterceptor.java:239) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.ejb3.remote.EJBRemoteTransactionPropagatingInterceptor.processInvocation(EJBRemoteTransactionPropagatingInterceptor.java:79) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.ejb3.component.interceptors.CurrentInvocationContextInterceptor.processInvocation(CurrentInvocationContextInterceptor.java:41) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.ejb3.component.invocationmetrics.WaitTimeInterceptor.processInvocation(WaitTimeInterceptor.java:43) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.ejb3.security.SecurityContextInterceptor.processInvocation(SecurityContextInterceptor.java:95) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.ejb3.component.interceptors.ShutDownInterceptorFactory$1.processInvocation(ShutDownInterceptorFactory.java:64) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.ejb3.component.interceptors.LoggingInterceptor.processInvocation(LoggingInterceptor.java:59) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.ee.component.NamespaceContextInterceptor.processInvocation(NamespaceContextInterceptor.java:50)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.ejb3.component.interceptors.AdditionalSetupInterceptor.processInvocation(AdditionalSetupInterceptor.java:55) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.invocation.ContextClassLoaderInterceptor.processInvocation(ContextClassLoaderInterceptor.java:64)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:326)
	at org.wildfly.security.manager.WildFlySecurityManager.doChecked(WildFlySecurityManager.java:448)
	at org.jboss.invocation.AccessCheckingInterceptor.processInvocation(AccessCheckingInterceptor.java:61)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.invocation.InterceptorContext.run(InterceptorContext.java:326)
	at org.jboss.invocation.PrivilegedWithCombinerInterceptor.processInvocation(PrivilegedWithCombinerInterceptor.java:80)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
	at org.jboss.as.ee.component.ViewService$View.invoke(ViewService.java:185)
	at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.invokeMethod(MethodInvocationMessageHandler.java:330) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler.access$100(MethodInvocationMessageHandler.java:70) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.as.ejb3.remote.protocol.versionone.MethodInvocationMessageHandler$1.run(MethodInvocationMessageHandler.java:203) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [rt.jar:1.8.0_31]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [rt.jar:1.8.0_31]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [rt.jar:1.8.0_31]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [rt.jar:1.8.0_31]
	at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_31]
	at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Caused by: org.jboss.modules.ModuleLoadError: org.apache.commons.logging.LogFactory:main
	at org.jboss.modules.ModuleLoadException.toError(ModuleLoadException.java:78) [jboss-modules.jar:1.3.3.Final]
	at org.jboss.modules.Module.getPathsUnchecked(Module.java:1392) [jboss-modules.jar:1.3.3.Final]
	at org.jboss.modules.Module.loadModuleClass(Module.java:563) [jboss-modules.jar:1.3.3.Final]
	at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:205) [jboss-modules.jar:1.3.3.Final]
	at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:459) [jboss-modules.jar:1.3.3.Final]
	at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:408) [jboss-modules.jar:1.3.3.Final]
	at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:389) [jboss-modules.jar:1.3.3.Final]
	at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:134) [jboss-modules.jar:1.3.3.Final]
	at com.system.main.FilesBean.sendFile(FilesBean.java:46) [ProjectEngineerServer.jar:]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.8.0_31]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) [rt.jar:1.8.0_31]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.8.0_31]
	at java.lang.reflect.Method.invoke(Method.java:483) [rt.jar:1.8.0_31]
	at org.jboss.as.ee.component.ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptor.java:52)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)
	at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:407)
	at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.doMethodInterception(Jsr299BindingsInterceptor.java:82) [wildfly-weld-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.as.weld.ejb.Jsr299BindingsInterceptor.processInvocation(Jsr299BindingsInterceptor.java:93) [wildfly-weld-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)
	at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:63)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.ejb3.component.invocationmetrics.ExecutionTimeInterceptor.processInvocation(ExecutionTimeInterceptor.java:43) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:407)
	at org.jboss.as.ejb3.concurrency.ContainerManagedConcurrencyInterceptor.processInvocation(ContainerManagedConcurrencyInterceptor.java:104) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.invocation.InterceptorContext$Invocation.proceed(InterceptorContext.java:407)
	at org.jboss.weld.ejb.AbstractEJBRequestScopeActivationInterceptor.aroundInvoke(AbstractEJBRequestScopeActivationInterceptor.java:46) [weld-core-impl-2.2.6.Final.jar:2014-10-03 10:05]
	at org.jboss.as.weld.ejb.EjbRequestScopeActivationInterceptor.processInvocation(EjbRequestScopeActivationInterceptor.java:83) [wildfly-weld-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.ee.concurrent.ConcurrentContextInterceptor.processInvocation(ConcurrentContextInterceptor.java:45) [wildfly-ee-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)
	at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53)
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.ejb3.component.singleton.SingletonComponentInstanceAssociationInterceptor.processInvocation(SingletonComponentInstanceAssociationInterceptor.java:52) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:309)
	at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInCallerTx(CMTTxInterceptor.java:251) [wildfly-ejb3-8.2.0.Final.jar:8.2.0.Final]
	... 108 more

Z błędu wynikałoby, że problem tkwi w tej linijce kodu: inputStream = RemoteInputStreamClient.wrap(file);(poniżej znajduje się całość kodu).
Kolejną rzeczą, która mi spędza sen z powiek jest brak wiedzy na temat przyczyny tej linijki błędu: Caused by: org.jboss.modules.ModuleLoadError: org.apache.commons.logging.LogFactory:main.

Autor biblioteki w FAQ wspomina, że oprócz jej samej wymagane są dodatkowe zależności: DEPENDENCIES. Z pominięciem test, wszystkie zależności dodałem do plików pom.xml zarówno klienta jak i serwera (oznaczyłem te, które dotyczą rmiio):

pom.xml serwera:

 
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>ProjectEngineerServer</groupId>
    <artifactId>ProjectEngineerServer</artifactId>
    <version>1.0.0</version>
    <packaging>ejb</packaging>

    <name>ProjectEngineerServer</name>

	<properties>
		<endorsed.dir>${project.build.directory}/endorsed</endorsed.dir>
		<!-- Explicitly declaring the source encoding eliminates the following message: -->
		<!-- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered 
		resources, i.e. build is platform dependent! -->
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
	
		<!-- JBoss dependency versions -->
		<version.wildfly.bom>8.2.1.Final</version.wildfly.bom>
		<version.wildfly.maven.plugin>1.0.2.Final</version.wildfly.maven.plugin>	
	
		<!-- other plugin versions -->
		<version.compiler.plugin>3.2</version.compiler.plugin>
		<version.ejb.plugin>2.5</version.ejb.plugin>
	
		<!-- maven-compiler-plugin -->
		<maven.compiler.target>1.7</maven.compiler.target>
		<maven.compiler.source>1.7</maven.compiler.source>
	</properties>
	
	<dependencyManagement>
		<dependencies>

			<dependency>
				<groupId>org.wildfly.bom</groupId>
				<artifactId>jboss-javaee-7.0-with-tools</artifactId>
				<version>${version.wildfly.bom}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>	
			<dependency>
				<groupId>org.wildfly.bom</groupId>
				<artifactId>jboss-javaee-7.0-with-hibernate</artifactId>
				<version>${version.wildfly.bom}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
	
		</dependencies>
	
	</dependencyManagement>
	
	<dependencies>
	
		<!-- Import the Common Annotations API (JSR-250), we use provided scope
			as the API is included in JBoss WildFly -->
		<dependency>
			<groupId>org.jboss.spec.javax.annotation</groupId>
			<artifactId>jboss-annotations-api_1.2_spec</artifactId>
			<scope>provided</scope>
		</dependency>
	
		<!--Import the EJB3.1 API, we use provided scope as the API is included in JBoss WildFly-->			
		<dependency>
			<groupId>org.jboss.spec.javax.ejb</groupId>
			<artifactId>jboss-ejb-api_3.2_spec</artifactId>
			<scope>provided</scope>
		</dependency>
		
		<!-- Import the JPA API, we use provided scope as the API is included in JBoss WildFly -->
		<dependency>
			<groupId>org.hibernate.javax.persistence</groupId>
			<artifactId>hibernate-jpa-2.1-api</artifactId>
			<scope>provided</scope>
		</dependency>
		
		<!-- JSR-303 (Bean Validation) Implementation -->
		<!-- Provides portable constraints such as @Email -->
		<!-- Hibernate Validator is shipped in JBoss WildFly -->
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-validator</artifactId>
			<scope>provided</scope>
			<exclusions>
				<exclusion>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-api</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		
		<!-- Annotation processor that raising compilation errors whenever constraint 
		annotations are incorrectly used. -->
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-validator-annotation-processor</artifactId>
			<scope>provided</scope>
		</dependency>	
	
		<dependency>
			<groupId>org.hibernate</groupId>
			<artifactId>hibernate-core</artifactId>
		</dependency>
		
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.34</version>
		</dependency>
		
                <!-- BIBLIOTEKA RMIIO -->
		<dependency>
			<groupId>com.healthmarketscience.rmiio</groupId>
			<artifactId>rmiio</artifactId>
			<version>2.0.5</version>
		</dependency>	
		
		<dependency>
			<groupId>org.jboss.modules</groupId>
			<artifactId>jboss-modules</artifactId>
			<version>1.4.1.Final</version>
		</dependency>
			
                <!-- ZALEŻNOŚĆ WYMAGANA DO DZIAŁANIA RMIIO -->
		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging</artifactId>
			<version>1.2</version>
		</dependency>
				
                <!-- ZALEŻNOŚĆ WYMAGANA DO DZIAŁANIA RMIIO -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
			<version>2.1</version>
		</dependency>		
				
	</dependencies>
		
	<build>
	    <!-- Set the name of the deployment -->
	    <finalName>${project.artifactId}</finalName>
	    <plugins>
	        <!-- WildFly plugin to deploy the application -->
	        <plugin>
	            <groupId>org.wildfly.plugins</groupId>
	            <artifactId>wildfly-maven-plugin</artifactId>
	            <version>${version.wildfly.maven.plugin}</version>
	            <configuration>
	                <filename>${project.build.finalName}.jar</filename>
	            </configuration>
	        </plugin>
	        <!-- Compiler plugin enforces Java 1.6 compatibility and activates 
	            annotation processors -->
	        <plugin>
	            <artifactId>maven-compiler-plugin</artifactId>
	            <version>${version.compiler.plugin}</version>
	            <configuration>
	                <source>${maven.compiler.source}</source>
	                <target>${maven.compiler.target}</target>
	            </configuration>
	        </plugin>
	        <plugin>
	            <groupId>org.apache.maven.plugins</groupId>
	            <artifactId>maven-ejb-plugin</artifactId>
	            <version>${version.ejb.plugin}</version>
				<configuration>
						<ejbVersion>3.1</ejbVersion>
					<!-- this is false by default -->
					<generateClient>true</generateClient>
				</configuration>
			</plugin>
	    </plugins>
	</build>

</project>

pom.xml klienta:

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>ProjectEngineer</groupId>
    <artifactId>ProjectEngineer</artifactId>
    <version>1.0.0</version>
    <name>ProjectEngineer</name>
	
	<properties>

		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		
		<!-- JBoss dependency versions -->
		<version.jboss.spec.javaee>1.0.2.Final</version.jboss.spec.javaee>
		<version.wildfly.maven.plugin>1.0.2.Final</version.wildfly.maven.plugin>
		<version.wildfly>8.2.0.Final</version.wildfly>		

		<!-- other plugin versions -->
		<version.compiler.plugin>3.2</version.compiler.plugin>
		<version.exec.plugin>1.3.2</version.exec.plugin>
		<version.war.plugin>2.5</version.war.plugin>

		<!-- maven-compiler-plugin -->
		<maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.testSource>1.8</maven.compiler.testSource>
        <maven.compiler.testTarget>1.8</maven.compiler.testTarget>        
		
	</properties>
	
	<dependencyManagement>
		<dependencies>
			
			<dependency>
				<groupId>org.jboss.spec</groupId>
				<artifactId>jboss-javaee-7.0</artifactId>
				<version>${version.jboss.spec.javaee}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			
			<dependency>
				<groupId>org.wildfly</groupId>
				<artifactId>wildfly-ejb-client-bom</artifactId>
				<version>${version.wildfly}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			
		</dependencies>
	</dependencyManagement>
	
	<dependencies>
		<!-- Import the transaction spec API, we use runtime scope because we aren't using any direct
		reference to the spec API in our client code -->
		<dependency>
			<groupId>org.jboss.spec.javax.transaction</groupId>
			<artifactId>jboss-transaction-api_1.2_spec</artifactId>
			<scope>runtime</scope>
		</dependency>
			
		<!-- Import the EJB 3.1 API, we use runtime scope because we aren't using any direct
			reference to EJB spec API in our client code -->
		<dependency>
			<groupId>org.jboss.spec.javax.ejb</groupId>
			<artifactId>jboss-ejb-api_3.2_spec</artifactId>
			<scope>runtime</scope>
		</dependency>
			
		<!-- We depend on the EJB remote business interfaces  of this application -->
		<dependency>
			<groupId>ProjectEngineerServer</groupId>
			<artifactId>ProjectEngineerServer</artifactId>
			<type>ejb-client</type>
			<version>${project.version}</version>
		</dependency>

		<!-- JBoss EJB client API jar. We use runtime scope because the EJB client API
			isn't directly used in this example. We just need it in our runtime classpath -->
		<dependency>
			<groupId>org.jboss</groupId>
			<artifactId>jboss-ejb-client</artifactId>
			<scope>runtime</scope>
		</dependency>
			
		<!-- client communications with the server use XNIO -->
		<dependency>
			<groupId>org.jboss.xnio</groupId>
			<artifactId>xnio-api</artifactId>
			<scope>runtime</scope>
		</dependency>

		<dependency>
			<groupId>org.jboss.xnio</groupId>
			<artifactId>xnio-nio</artifactId>
			<scope>runtime</scope>
		</dependency>

		<!-- The client needs JBoss remoting to access the server -->
		<dependency>
			<groupId>org.jboss.remoting</groupId>
			<artifactId>jboss-remoting</artifactId>
			<scope>runtime</scope>
		</dependency>

		<!-- Remote EJB accesses can be secured -->
		<dependency>
			<groupId>org.jboss.sasl</groupId>
			<artifactId>jboss-sasl</artifactId>
			<scope>runtime</scope>
		</dependency>

		<!-- data serialization for invoking remote EJBs -->
		<dependency>
			<groupId>org.jboss.marshalling</groupId>
			<artifactId>jboss-marshalling-river</artifactId>
			<scope>runtime</scope>
		</dependency>
		
		<!-- BIBLIOTEKA RMIIO -->
		<dependency>
			<groupId>com.healthmarketscience.rmiio</groupId>
			<artifactId>rmiio</artifactId>
			<version>2.0.5</version>
		</dependency>
		
		<!-- ZALEŻNOŚĆ WYMAGANA DO DZIAŁANIA RMIIO -->		
		<dependency>
			<groupId>commons-logging</groupId>
			<artifactId>commons-logging</artifactId>
			<version>1.2</version>
		</dependency>
		
		<!-- ZALEŻNOŚĆ WYMAGANA DO DZIAŁANIA RMIIO -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
			<version>2.1</version>
		</dependency>			
				
	</dependencies>	
	
	<build>
		<finalName>${project.artifactId}</finalName>
		
		<plugins>
		
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-clean-plugin</artifactId>
				<version>2.6.1</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-resources-plugin</artifactId>
				<version>2.7</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.2</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.18.1</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<version>2.5</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-install-plugin</artifactId>
				<version>2.5.2</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-deploy-plugin</artifactId>
				<version>2.8.2</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<version>2.3</version>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>shade</goal>
						</goals>
						<configuration>
							<transformers>
								<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
									<mainClass>com.system.main.Main</mainClass>
								</transformer>
							</transformers>
						</configuration>
					</execution>
				</executions>
			</plugin> 
			
			<!-- The WildFly plugin deploys your apps to a local WildFly container -->
			<!-- Disabling it here means that we don't try to deploy this POM! -->
			<plugin>
				<groupId>org.wildfly.plugins</groupId>
				<artifactId>wildfly-maven-plugin</artifactId>
				<version>${version.wildfly.maven.plugin}</version>
				<inherited>true</inherited>
				<configuration>
					<skip>true</skip>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>

Zawartość pliku jboss-deployment-structure.xml znajdującego się po stronie serwera:

<?xml version="1.0" encoding="UTF-8"?>

<jboss-deployment-structure>
    <deployment>
        <dependencies>
            <module name="com.healthmarketscience" slot="main" export="true"/>  
        </dependencies>        
    </deployment>
</jboss-deployment-structure>

Bez powyższego fragmentu kodu, w czasie próby wysłania pliku otrzymywałem wyjątek java.lang.ClassNotFoundException: com.healthmarketscience.rmiio.RemoteInputStream.

Skrócona implementacja serwera w zakresie pobierania pliku od klienta:

Klasa HandlingBeanRemote:

 
package com.system.main;

import javax.ejb.Remote;
import com.healthmarketscience.rmiio.RemoteInputStream;

@Remote
public interface HandlingBeanRemote {
	
	//...
	
	/**
	 * Zapis pliku przesłanego przez klienta.
	 */
	public Boolean sendFile(RemoteInputStream file, String fileName);
	
	/**
	 * Wysłanie klientowi wybranego pliku.
	 */
	public RemoteInputStream downloadFile(String fileName);
}

Klasa HandlingBean:

 
package com.system.main;

import javax.ejb.EJB;
import javax.ejb.Stateless;

import com.healthmarketscience.rmiio.RemoteInputStream;

/**
 * Session Bean implementation class HandlingBean
 */
@Stateless
public class HandlingBean implements HandlingBeanRemote {

    public HandlingBean() {
    	
    }

	//...
	
	@Override
	public Boolean sendFile(RemoteInputStream file, String fileName) {
		
		return filesBean.sendFile(file, fileName);
	}

	@Override
	public RemoteInputStream downloadFile(String fileName) {
		
		return filesBean.downloadFile(fileName);
	}
	
	//...
	
	@EJB
	private FilesBean filesBean;
}

Klasa FilesBean:

 
package com.system.main;

import java.io.IOException;
import java.io.InputStream;

import javax.ejb.Lock;
import javax.ejb.LockType;
import javax.ejb.Singleton;
import javax.ejb.Startup;

import com.healthmarketscience.rmiio.RemoteInputStream;
import com.healthmarketscience.rmiio.RemoteInputStreamClient;

/**
 * Session Bean implementation class FilesBean
 */
@Singleton
@Startup
@Lock(LockType.READ)
public class FilesBean {
	
    public FilesBean() {
        
    }

	public Boolean sendFile(RemoteInputStream file, String fileName) {
		
		InputStream inputStream=null;
		
		try {
			
			inputStream = RemoteInputStreamClient.wrap(file);
			
			//... zapis pliku ...
			
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return true;
	}

	public RemoteInputStream downloadFile(String fileName) {
		
		//...
		
		return null;
	}
}

Skrócona implementacja klienta w zakresie wysyłania pliku:

 
	//...
	
	private class SendFile{
		
		public SendFile(JFrame frame) {
			
			this.frame=frame;
			
			fileChooser=new JFileChooser();
		}
		
		private Boolean sendFile(){
			
			int result=fileChooser.showDialog(frame, "Wyślij");
			
			if(result==JFileChooser.APPROVE_OPTION){
				
				RemoteInputStreamServer remoteInputStreamServer = null;

				try {			
					
					remoteInputStreamServer = new GZIPRemoteInputStream(new BufferedInputStream(new FileInputStream(fileChooser.getSelectedFile().getPath())));

					ConnectionServer.getHandlingBeanRemote().sendFile(remoteInputStreamServer.export(), fileChooser.getSelectedFile().getName());
					
				} catch (FileNotFoundException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} catch (IOException e) {
					// TODO Auto-generated catch block
					e.printStackTrace();
				} finally {
				    // since the server should have consumed the stream in the sendFile()
				    // call, we always want to close the stream
				    if(remoteInputStreamServer != null) remoteInputStreamServer.close();
				}
			}
			
			return true;
		}
		
		private JFrame frame;
		private JFileChooser fileChooser;
		
		private BufferedInputStream bufferedInputStreamFile;
		private InputStream inputStream;
	}
	
	//...

Czy ktoś miał do czynienia z tą biblioteką i serwerem Wildfly/JBoss (lub też nie, ale domyśla się w czym tkwi problem) i jest w stanie mi powiedzieć co powinienem zrobić, żeby pozbyć się tego błędu i doprowadzić do przesłania pliku?

Nie jestem pewien gdzie dokładnie tkwi problem. Wygląda to tak, jakby serwerowi Wildfly coś brakowało, być może brakuje mi jakiś zależności w pliku jboss-deployment-structure.xml, ale próbowałem już na różne sposoby i bez skutku.